/******************************************************************************* * Copyright 2017 Graz University of Technology * EAAF-Core Components has been developed in a cooperation between EGIZ, * A-SIT+, A-SIT, and Graz University of Technology. * * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by * the European Commission - subsequent versions of the EUPL (the "Licence"); * You may not use this work except in compliance with the Licence. * You may obtain a copy of the Licence at: * https://joinup.ec.europa.eu/news/understanding-eupl-v12 * * Unless required by applicable law or agreed to in writing, software * distributed under the Licence is distributed on an "AS IS" basis, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the Licence for the specific language governing permissions and * limitations under the Licence. * * This product combines work with different licenses. See the "NOTICE" text * file for details on the various modules and licenses. * The "NOTICE" text file is part of the distribution. Any derivative works * that you distribute must include a readable copy of the "NOTICE" text file. *******************************************************************************/ /******************************************************************************* *******************************************************************************/ /******************************************************************************* *******************************************************************************/ package at.gv.egiz.eaaf.core.api.gui; import java.io.InputStream; import javax.servlet.http.HttpServletResponse; import org.apache.velocity.VelocityContext; import at.gv.egiz.eaaf.core.exceptions.GUIBuildException; /** * @author tlenz * */ public interface IGUIFormBuilder { /** * Parse a GUI template, with parameters into a http servlet-response * and use the default http-response content-type. *

* The parser use the VelocityEngine as internal template evaluator. * * @param httpResp http-response object * @param viewName Name of the template (with suffix), which should be used. * The template is selected by using the getTemplate(String viewName) method * @param viewParams Map of parameters, which should be added to template * @param loggerName String, which should be used from logger * * @throws GUIBuildException */ public void build(HttpServletResponse httpResp, IGUIBuilderConfiguration config, String loggerName) throws GUIBuildException; /** * Parse a GUI template, with parameters into a http servlet-response. *

* The parser use the VelocityEngine as internal template evaluator. * * @param httpResp http-response object * @param viewName Name of the template (with suffix), which should be used. * The template is selected by using the getTemplate(String viewName) method * @param viewParams Map of parameters, which should be added to template * @param contentType http-response content-type, which should be set * @param loggerName String, which should be used from logger * * @throws GUIBuildException */ void build(HttpServletResponse httpResp, IGUIBuilderConfiguration config, String contentType, String loggerName) throws GUIBuildException; /** * Generate a new {@link VelocityContext} and populate it with MOA-ID GUI parameters * * @param config * @return */ public VelocityContext generateVelocityContextFromConfiguration(IGUIBuilderConfiguration config); /** * Load the template from different resources * * @param config * @return An {@link InputStream} but never null. The {@link InputStream} had to be closed be the invoking method * @throws GUIBuildException */ public InputStream getTemplateInputStream(IGUIBuilderConfiguration config) throws GUIBuildException; }