From a0d759f58b3df69ddc05b13ddec1e7743c54b912 Mon Sep 17 00:00:00 2001 From: szewczyw Date: Thu, 16 Jan 2025 10:59:59 +0100 Subject: [PATCH] Added basic adding param functionality --- .../r11/tools/controller/XmlController.java | 39 ++++++++++++++++--- .../r11/tools/controller/internal/XmlJob.java | 8 +++- .../tools/controller/internal/XmlJobType.java | 2 +- .../com/r11/tools/model/XMLRequestBody.java | 13 ++++--- .../java/com/r11/tools/xml/XmlEngine.java | 4 +- 5 files changed, 48 insertions(+), 18 deletions(-) diff --git a/Backend/tools-services/src/main/java/com/r11/tools/controller/XmlController.java b/Backend/tools-services/src/main/java/com/r11/tools/controller/XmlController.java index 7759a62..0c24cc8 100644 --- a/Backend/tools-services/src/main/java/com/r11/tools/controller/XmlController.java +++ b/Backend/tools-services/src/main/java/com/r11/tools/controller/XmlController.java @@ -10,6 +10,8 @@ import org.apache.logging.log4j.Logger; import spark.Request; import spark.Response; +import java.io.StringWriter; + /** * Controller used to handle XML tools: XPath, XSD validation, XQuery and XSLT * @author Adam Bem @@ -48,9 +50,14 @@ public class XmlController implements RestController { @ScopedControllerManifest(method = HandlerType.POST, path = "/xslt") public void acceptRequestXslt(Request request, Response response) { + System.out.println("received xslt"); acceptRequest(request, response, XmlJobType.XSLT); } - + @ScopedControllerManifest(method = HandlerType.POST, path = "/xslt/param") + public void acceptRequestXsltAddParam(Request request, Response response) { + System.out.println("received param"); + acceptRequest(request, response, XmlJobType.XSLT_PARAM); + } private void acceptRequest(Request request, Response response, XmlJobType xmlJobType) { XMLRequestBody requestBody; try { @@ -60,7 +67,12 @@ public class XmlController implements RestController { return; } - if (requestBody.getProcessor() == null) { + if (requestBody.getProcessor() == null ) { + if(requestBody.getProcessorData() != null){ + processRequest(new XmlJob(response, requestBody, xmlJobType)); + return; + } + System.out.println("getProcessor=null"); invalidEngineSelectedResponse(response); return; } @@ -91,10 +103,9 @@ public class XmlController implements RestController { responseBody.setDuration(duration); xmlJob.getResponse().status(200); - - this.logger.info("Request (" + xmlJob.getXmlJobType() + ", " + + /* this.logger.info("Request (" + xmlJob.getXmlJobType() + ", " + xmlJob.getEngine().getVersion() + - ") processed in " + duration + " ms."); + ") processed in " + duration + " ms.");*/ } catch (Exception ex) { responseBody = processingErrorResponse(ex, xmlJob); @@ -129,6 +140,13 @@ public class XmlController implements RestController { String result = null; switch (xmlJob.getXmlJobType()) { + case XSLT_PARAM: + System.out.println("xstl_param"); + System.out.println(requestBody.getProcessorData()); + System.out.println(requestBody.getParamName()); + System.out.println(requestBody.getParamValue()); + result = addParam(requestBody.getProcessorData(), requestBody.getParamName(), requestBody.getParamValue()); + break; case XSLT: result = engine.processXSLT(requestBody.getData(), requestBody.getProcessorData()); break; @@ -141,7 +159,16 @@ public class XmlController implements RestController { requestBody.getVersion()); break; } - return new XMLResponseBody(result, "OK", requestBody.getVersion()); + System.out.println("can we get here?"); + return new XMLResponseBody(result, "OK", requestBody.getProcessorData()); + } + + private String addParam(String processorData, String paramName, String paramValue) { + System.out.println("addParamSaxon"); + processorData= processorData.replace("", "\n\t\t"); + StringWriter sw = new StringWriter(); + sw.write(processorData); + return sw.toString(); } private XMLResponseBody processingErrorResponse(Exception ex, XmlJob xmlJob) { diff --git a/Backend/tools-services/src/main/java/com/r11/tools/controller/internal/XmlJob.java b/Backend/tools-services/src/main/java/com/r11/tools/controller/internal/XmlJob.java index 3537d2c..2fef936 100644 --- a/Backend/tools-services/src/main/java/com/r11/tools/controller/internal/XmlJob.java +++ b/Backend/tools-services/src/main/java/com/r11/tools/controller/internal/XmlJob.java @@ -7,7 +7,7 @@ import spark.Response; public class XmlJob { private final Response response; private final XMLRequestBody requestBody; - private final XmlEngine engine; + private XmlEngine engine; private final XmlJobType xmlJobType; public XmlJob(Response response, XMLRequestBody requestBody, XmlEngine engine, XmlJobType xmlJobType) { @@ -16,7 +16,11 @@ public class XmlJob { this.engine = engine; this.xmlJobType = xmlJobType; } - + public XmlJob(Response response, XMLRequestBody requestBody, XmlJobType xmlJobType) { + this.response = response; + this.requestBody = requestBody; + this.xmlJobType = xmlJobType; + } public Response getResponse() { return response; } diff --git a/Backend/tools-services/src/main/java/com/r11/tools/controller/internal/XmlJobType.java b/Backend/tools-services/src/main/java/com/r11/tools/controller/internal/XmlJobType.java index 0967e42..8bd1a06 100644 --- a/Backend/tools-services/src/main/java/com/r11/tools/controller/internal/XmlJobType.java +++ b/Backend/tools-services/src/main/java/com/r11/tools/controller/internal/XmlJobType.java @@ -1,7 +1,7 @@ package com.r11.tools.controller.internal; public enum XmlJobType { - XPath("XPath"), XSD("XSD"), XQuery("XQuery"), XSLT("XSLT"); + XPath("XPath"), XSD("XSD"), XQuery("XQuery"), XSLT("XSLT"), XSLT_PARAM("XSLT_PARAM"); XmlJobType(String type) { } diff --git a/Backend/tools-services/src/main/java/com/r11/tools/model/XMLRequestBody.java b/Backend/tools-services/src/main/java/com/r11/tools/model/XMLRequestBody.java index e7b06aa..70a22d8 100644 --- a/Backend/tools-services/src/main/java/com/r11/tools/model/XMLRequestBody.java +++ b/Backend/tools-services/src/main/java/com/r11/tools/model/XMLRequestBody.java @@ -15,19 +15,20 @@ public class XMLRequestBody { private String processor; @SerializedName("version") private String version; + @SerializedName("paramName") + private String paramName; + @SerializedName("paramValue") + private String paramValue; public String getData() { return data; } - - public String getProcessorData() { - return processorData; - } - + public String getProcessorData() {return processorData;} + public String getParamName() {return paramName;} + public String getParamValue() {return paramValue;} public String getProcessor() { return processor; } - public String getVersion() { return version; } diff --git a/Backend/tools-services/src/main/java/com/r11/tools/xml/XmlEngine.java b/Backend/tools-services/src/main/java/com/r11/tools/xml/XmlEngine.java index 7e7b8db..ea390b7 100644 --- a/Backend/tools-services/src/main/java/com/r11/tools/xml/XmlEngine.java +++ b/Backend/tools-services/src/main/java/com/r11/tools/xml/XmlEngine.java @@ -9,9 +9,7 @@ public interface XmlEngine { XPathQueryResult processXPath(String data, String query, String version) throws Exception; String processXSLT(String data, String transform) throws Exception; String validate(String data, String xsd) throws Exception; - String executeXQuery(String data, String xquery, String version) throws Exception; - public String getVersion(); - + String addParam(String processorData, String paramName, String paramValue) throws Exception; }