1 /* 2 * #%L 3 * Coser :: Web 4 * %% 5 * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chemit Tony 6 * %% 7 * This program is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU Affero General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU Affero General Public License 18 * along with this program. If not, see <http://www.gnu.org/licenses/>. 19 * #L% 20 */ 21 package fr.ifremer.coser.web.actions.common; 22 23 import fr.ifremer.coser.result.CoserRequest; 24 import fr.ifremer.coser.result.CoserRequestBuilder; 25 import fr.ifremer.coser.web.ServiceHelper; 26 import org.nuiton.web.struts2.BaseAction; 27 28 import java.util.Locale; 29 30 /** 31 * Created on 3/21/14. 32 * 33 * @author Tony Chemit <chemit@codelutin.com> 34 * @since 1.5 35 */ 36 public abstract class AbstractCoserAction extends BaseAction { 37 38 private static final long serialVersionUID = 1L; 39 40 /** 41 * To access business layer. 42 * 43 * @since 1.5 44 */ 45 protected transient ServiceHelper service; 46 47 /** 48 * @return a new request builder. 49 * @since 1.5 50 */ 51 protected <R extends CoserRequest> CoserRequestBuilder<R> requestBuilder(Class<R> requestType) { 52 return requestBuilder(getLocale(), requestType); 53 } 54 55 /** 56 * @param locale locale to use (while using execute and wait action we keep the locale in session...) 57 * @param requestType type of request to build 58 * @return a new request builder. 59 * @since 1.5 60 */ 61 protected <R extends CoserRequest> CoserRequestBuilder<R> requestBuilder(Locale locale, Class<R> requestType) { 62 return CoserRequestBuilder.newBuilder(locale, requestType); 63 } 64 65 /** 66 * @return service helper for this action 67 * @since 1.5 68 */ 69 protected ServiceHelper getService() { 70 if (service == null) { 71 service = new ServiceHelper(this); 72 } 73 return service; 74 } 75 }