/* * Copyright (c) 2006-2007 Massachusetts General Hospital * All rights reserved. This program and the accompanying materials * are made available under the terms of the i2b2 Software License v1.0 * which accompanies this distribution. * * Contributors: * Rajesh Kuttan */ package edu.harvard.i2b2.crc.loader.delegate.pm; import java.io.StringWriter; import javax.xml.bind.JAXBElement; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import edu.harvard.i2b2.common.util.jaxb.JAXBUnWrapHelper; import edu.harvard.i2b2.common.util.jaxb.JAXBUtil; import edu.harvard.i2b2.common.util.jaxb.JAXBUtilException; import edu.harvard.i2b2.crc.loader.datavo.CRCLoaderJAXBUtil; import edu.harvard.i2b2.crc.datavo.i2b2message.BodyType; import edu.harvard.i2b2.crc.datavo.i2b2message.ResponseHeaderType; import edu.harvard.i2b2.crc.datavo.i2b2message.ResponseMessageType; import edu.harvard.i2b2.crc.datavo.i2b2message.StatusType; import edu.harvard.i2b2.crc.loader.util.CRCLoaderUtil; import edu.harvard.i2b2.crc.datavo.pm.ConfigureType; import edu.harvard.i2b2.crc.datavo.pm.ParamType; public class PMResponseMessage { public static final String THIS_CLASS_NAME = PMResponseMessage.class.getName(); private Log log = LogFactory.getLog(THIS_CLASS_NAME); private ResponseMessageType pmRespMessageType = null; public PMResponseMessage() {} public StatusType processResult(String response) throws JAXBUtilException{ StatusType status = null; try { JAXBElement jaxbElement = CRCLoaderJAXBUtil.getJAXBUtil().unMashallFromString(response); pmRespMessageType = (ResponseMessageType) jaxbElement.getValue(); // Get response message status ResponseHeaderType responseHeader = pmRespMessageType.getResponseHeader(); status = responseHeader.getResultStatus().getStatus(); String procStatus = status.getType(); String procMessage = status.getValue(); if(procStatus.equals("ERROR")){ log.info("Error reported by CRC web Service " + procMessage); } else if(procStatus.equals("WARNING")){ log.info("Warning reported by CRC web Service" + procMessage); } } catch (JAXBUtilException e) { log.error(e); throw e; } return status; } public ConfigureType readUserInfo() throws JAXBUtilException { ConfigureType pmResponse = null; BodyType bodyType = pmRespMessageType.getMessageBody(); JAXBUnWrapHelper helper = new JAXBUnWrapHelper(); pmResponse = (ConfigureType)helper.getObjectByClass(bodyType.getAny(), ConfigureType.class); return pmResponse; } }