From db1cde4eb42c98c4661ec5dcf12b970ece477fcc Mon Sep 17 00:00:00 2001 From: Thomas <> Date: Tue, 7 Dec 2021 20:42:41 +0100 Subject: change IGuiFormBuilder interface to enable pre-evaluation of response contentType without rendering --- .../impl/idp/module/gui/DummyGuiFormBuilder.java | 7 +++++++ .../module/gui/DummyVelocityGuiFormBuilder.java | 12 ++++++++++++ .../gv/egiz/eaaf/core/api/gui/IGuiFormBuilder.java | 22 ++++++++++++++-------- 3 files changed, 33 insertions(+), 8 deletions(-) diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/gui/DummyGuiFormBuilder.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/gui/DummyGuiFormBuilder.java index bd81169d..5e12e7bc 100644 --- a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/gui/DummyGuiFormBuilder.java +++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/gui/DummyGuiFormBuilder.java @@ -34,4 +34,11 @@ public class DummyGuiFormBuilder implements IGuiFormBuilder { } + @Override + public String evaluateResponseContentType(HttpServletRequest httpReq, IGuiBuilderConfiguration config, + String loggerName) throws GuiBuildException { + return null; + + } + } diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/gui/DummyVelocityGuiFormBuilder.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/gui/DummyVelocityGuiFormBuilder.java index e2cdd1ee..8fe9e2eb 100644 --- a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/gui/DummyVelocityGuiFormBuilder.java +++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/module/gui/DummyVelocityGuiFormBuilder.java @@ -2,6 +2,11 @@ package at.gv.egiz.eaaf.core.impl.idp.module.gui; import java.io.InputStream; +import javax.servlet.http.HttpServletRequest; + +import org.springframework.http.MediaType; + +import at.gv.egiz.eaaf.core.api.gui.IGuiBuilderConfiguration; import at.gv.egiz.eaaf.core.api.gui.IVelocityGuiBuilderConfiguration; import at.gv.egiz.eaaf.core.exceptions.GuiBuildException; import at.gv.egiz.eaaf.core.impl.gui.AbstractVelocityGuiFormBuilderImpl; @@ -30,6 +35,13 @@ public class DummyVelocityGuiFormBuilder extends AbstractVelocityGuiFormBuilderI this.internalTemplate = internalTemplate; } + @Override + public String evaluateResponseContentType(HttpServletRequest httpReq, IGuiBuilderConfiguration config, + String loggerName) throws GuiBuildException { + return MediaType.TEXT_XML_VALUE; + + } + diff --git a/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGuiFormBuilder.java b/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGuiFormBuilder.java index d376d17b..09c4a8b3 100644 --- a/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGuiFormBuilder.java +++ b/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/gui/IGuiFormBuilder.java @@ -35,10 +35,7 @@ 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 httpReq http-request object * @param httpResp http-response object * @param config Configuration object @@ -51,10 +48,7 @@ public interface IGuiFormBuilder { /** * 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 @@ -66,4 +60,16 @@ public interface IGuiFormBuilder { void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IGuiBuilderConfiguration config, String contentType, String loggerName) throws GuiBuildException; + /** + * Analyze GUI template and HTTP request to evaluate ContentType of HTTP response generated by this builder. + * + * @param httpReq http-request object + * @param config Configuration object + * @param loggerName String, which should be used from logger + * @return ContentType of HTTP response + * @throws GuiBuildException in case of an error + */ + String evaluateResponseContentType(HttpServletRequest httpReq, IGuiBuilderConfiguration config, + String loggerName) throws GuiBuildException; + } -- cgit v1.2.3