package at.gv.egiz.eaaf.core.api.gui;
import java.io.InputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.velocity.VelocityContext;
import at.gv.egiz.eaaf.core.exceptions.GuiBuildException;
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;
}