aboutsummaryrefslogtreecommitdiff
path: root/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/CMSCreateSignatureBindingImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/CMSCreateSignatureBindingImpl.java')
-rw-r--r--moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/CMSCreateSignatureBindingImpl.java72
1 files changed, 72 insertions, 0 deletions
diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/CMSCreateSignatureBindingImpl.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/CMSCreateSignatureBindingImpl.java
new file mode 100644
index 0000000..31302d3
--- /dev/null
+++ b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/CMSCreateSignatureBindingImpl.java
@@ -0,0 +1,72 @@
+package at.gv.egovernment.moa.spss.server.webservice.binding;
+
+import java.util.Iterator;
+import java.util.List;
+
+import at.gv.egiz.moasig.CreateCMSSignatureResponseType;
+import at.gv.egovernment.moa.spss.MOAApplicationException;
+import at.gv.egovernment.moa.spss.api.SPSSFactory;
+import at.gv.egovernment.moa.spss.api.cmssign.CMSSignatureResponse;
+import at.gv.egovernment.moa.spss.api.cmssign.CreateCMSSignatureRequest;
+import at.gv.egovernment.moa.spss.api.cmssign.CreateCMSSignatureResponse;
+import at.gv.egovernment.moa.spss.api.cmssign.CreateCMSSignatureResponseElement;
+import at.gv.egovernment.moa.spss.api.xmlsign.ErrorResponse;
+import at.gv.egovernment.moa.spss.server.webservice.CMSCreateSignatureBinding;
+
+public class CMSCreateSignatureBindingImpl implements CMSCreateSignatureBinding {
+
+ private TransformerUtils transformerUtils = new TransformerUtils();
+
+ /** The factory to create API objects. */
+ private SPSSFactory factory;
+
+ private CMSParserUtils cmsParserUtils;
+
+ public CMSCreateSignatureBindingImpl() {
+ this.factory = SPSSFactory.getInstance();
+ this.cmsParserUtils = new CMSParserUtils();
+ }
+
+ @Override
+ public CreateCMSSignatureRequest buildCMSRequest(
+ at.gv.egiz.moasig.CreateCMSSignatureRequest createCMSSignatureRequest) throws MOAApplicationException {
+
+ String keyIdentifier = createCMSSignatureRequest.getKeyIdentifier();
+ List singleSignatureInfos = this.cmsParserUtils.parseSingleSignatureInfos(
+ createCMSSignatureRequest.getSingleSignatureInfo());
+
+ return this.factory.createCreateCMSSignatureRequest(keyIdentifier, singleSignatureInfos);
+ }
+
+ @Override
+ public CreateCMSSignatureResponseType buildCMSResponse(CreateCMSSignatureResponse response)
+ throws MOAApplicationException {
+
+ Iterator iter = response.getResponseElements().iterator();
+
+ CreateCMSSignatureResponseType createCMSSignatureResponseType = new CreateCMSSignatureResponseType();
+
+ while (iter.hasNext()) {
+ CreateCMSSignatureResponseElement responseElement = (CreateCMSSignatureResponseElement) iter.next();
+
+ switch (responseElement.getResponseType()) {
+ case CreateCMSSignatureResponseElement.CMS_SIGNATURE:
+ CMSSignatureResponse cmsSignatureResponse = (CMSSignatureResponse) responseElement;
+ createCMSSignatureResponseType.getCMSSignatureOrErrorResponse()
+ .add(
+ this.cmsParserUtils.addCMSSignature(cmsSignatureResponse));
+ break;
+
+ case CreateCMSSignatureResponseElement.ERROR_RESPONSE:
+ ErrorResponse errorResponse = (ErrorResponse) responseElement;
+ createCMSSignatureResponseType.getCMSSignatureOrErrorResponse().add(
+ this.cmsParserUtils.addErrorResponse(errorResponse));
+ break;
+ }
+ }
+
+ return createCMSSignatureResponseType;
+ }
+
+
+}