diff options
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.java | 72 |
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; + } + + +} |