From bcb50da2b740da9122ae5ca6366582e0efa096bb Mon Sep 17 00:00:00 2001 From: clemenso Date: Tue, 20 Jan 2009 14:16:18 +0000 Subject: prepare for stal service extension git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@263 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- .../java/at/gv/egiz/stal/util/STALTranslator.java | 33 +++++++++++++--------- 1 file changed, 19 insertions(+), 14 deletions(-) (limited to 'STALService/src/main/java/at/gv/egiz/stal/util/STALTranslator.java') diff --git a/STALService/src/main/java/at/gv/egiz/stal/util/STALTranslator.java b/STALService/src/main/java/at/gv/egiz/stal/util/STALTranslator.java index b8681084..6bbd7301 100644 --- a/STALService/src/main/java/at/gv/egiz/stal/util/STALTranslator.java +++ b/STALService/src/main/java/at/gv/egiz/stal/util/STALTranslator.java @@ -16,6 +16,7 @@ import at.gv.egiz.stal.service.types.*; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import javax.xml.bind.JAXBElement; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -27,9 +28,10 @@ public class STALTranslator { protected static final Log log = LogFactory.getLog(STALTranslator.class); - public static List translateRequests(List requests) { + public static List translateRequests(List> requests) { List stalRequests = new ArrayList(requests.size()); - for (RequestType request : requests) { + for (JAXBElement requestElt : requests) { + RequestType request = requestElt.getValue(); if (request instanceof InfoboxReadRequestType) { InfoboxReadRequest stalReq = new InfoboxReadRequest(); stalReq.setDomainIdentifier(((InfoboxReadRequestType) request).getDomainIdentifier()); @@ -51,37 +53,40 @@ public class STALTranslator { return stalRequests; } - public static List fromSTAL(List stalResponses) { - List responses = new ArrayList(stalResponses.size()); + public static List> fromSTAL(List stalResponses) { + ObjectFactory stalObjFactory = new ObjectFactory(); + List> responses = new ArrayList>(stalResponses.size()); for (STALResponse stalResp : stalResponses) { if (stalResp instanceof InfoboxReadResponse) { - InfoboxReadResponseType resp = new InfoboxReadResponseType(); + InfoboxReadResponseType resp = stalObjFactory.createInfoboxReadResponseType(); resp.setInfoboxValue(((InfoboxReadResponse) stalResp).getInfoboxValue()); - responses.add(resp); + responses.add(stalObjFactory.createGetNextRequestTypeInfoboxReadResponse(resp)); } else if (stalResp instanceof SignResponse) { - SignResponseType resp = new SignResponseType(); + SignResponseType resp = stalObjFactory.createSignResponseType(); resp.setSignatureValue(((SignResponse) stalResp).getSignatureValue()); - responses.add(resp); + responses.add(stalObjFactory.createGetNextRequestTypeSignResponse(resp)); } else if (stalResp instanceof ErrorResponse) { - ErrorResponseType resp = new ErrorResponseType(); + ErrorResponseType resp = stalObjFactory.createErrorResponseType(); resp.setErrorCode(((ErrorResponse) stalResp).getErrorCode()); resp.setErrorMessage(((ErrorResponse) stalResp).getErrorMessage()); - responses.add(resp); + responses.add(stalObjFactory.createGetNextRequestTypeErrorResponse(resp)); } else { log.error("unknown STAL response type: " + stalResp.getClass()); - ErrorResponseType resp = new ErrorResponseType(); + ErrorResponseType resp = stalObjFactory.createErrorResponseType(); resp.setErrorCode(4000); resp.setErrorMessage("unknown STAL response type: " + stalResp.getClass()); - responses = Collections.singletonList((ResponseType) resp); + responses.clear(); + responses.add(stalObjFactory.createGetNextRequestTypeErrorResponse(resp)); break; } } return responses; } - public static List toSTAL(List responses) { + public static List toSTAL(List> responses) { List stalResponses = new ArrayList(responses.size()); - for (ResponseType resp : responses) { + for (JAXBElement respElt : responses) { + ResponseType resp = respElt.getValue(); if (resp instanceof InfoboxReadResponseType) { InfoboxReadResponse stalResp = new InfoboxReadResponse(); stalResp.setInfoboxValue(((InfoboxReadResponseType) resp).getInfoboxValue()); -- cgit v1.2.3