package at.gv.egiz.eaaf.core.api.gui; import java.io.InputStream; import org.apache.velocity.VelocityContext; import at.gv.egiz.eaaf.core.exceptions.GuiBuildException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; public interface IVelocityGuiFormBuilder extends IGuiFormBuilder { /** * Generate a new {@link VelocityContext} and populate it with MOA-ID GUI * parameters. * * @param config GUI builder configuration * @return */ VelocityContext generateVelocityContextFromConfiguration( IVelocityGuiBuilderConfiguration config); /** * Load the template from different resources. * * @param config GUI builder configuration * @return An {@link InputStream} but never null. The {@link InputStream} had to * be closed be the invoking method * @throws GuiBuildException In case of an error */ InputStream getTemplateInputStream(IVelocityGuiBuilderConfiguration config) throws GuiBuildException; /** * 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 httpReq http-request object * @param httpResp http-response object * @param config Configuration object * @param loggerName String, which should be used from logger * * @throws GuiBuildException in case of an error */ void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IVelocityGuiBuilderConfiguration 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 httpReq http-request object * @param httpResp http-response object * @param config Configuration object * @param contentType http-response content-type, which should be set * @param loggerName String, which should be used from logger * * @throws GuiBuildException In case of an error */ void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IVelocityGuiBuilderConfiguration config, String contentType, String loggerName) throws GuiBuildException; }