edu.harvard.i2b2.pm.ws.ServicesMessage.java Source code

Java tutorial

Introduction

Here is the source code for edu.harvard.i2b2.pm.ws.ServicesMessage.java

Source

/*
 * 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:
 *     Mike Mendis - initial API and implementation
 */

package edu.harvard.i2b2.pm.ws;

import edu.harvard.i2b2.common.exception.I2B2Exception;
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.pm.datavo.i2b2message.BodyType;
import edu.harvard.i2b2.pm.datavo.i2b2message.RequestMessageType;
import edu.harvard.i2b2.pm.datavo.pm.GetUserConfigurationType;
import edu.harvard.i2b2.pm.util.JAXBConstant;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import javax.xml.bind.JAXBElement;

/**
 * The PatientDataMessage class is a helper class to build PFT messages in the
 * i2b2 format
 */
public class ServicesMessage {
    private static Log log = LogFactory.getLog(ServicesMessage.class);
    //  private JAXBUtil jaxbUtil = null;
    RequestMessageType reqMessageType = null;

    /**
     * The constructor
     */
    public ServicesMessage(String requestPdo) throws I2B2Exception {
        JAXBUtil jaxbUtil = MessageFactory.getJAXBUtil();
        //new JAXBUtil(JAXBConstant.DEFAULT_PACKAGE_NAME);

        try {
            log.debug("Begin unmarshall of XML");
            JAXBElement jaxbElement = jaxbUtil.unMashallFromString(requestPdo);

            if (jaxbElement == null) {
                throw new I2B2Exception("Null value from unmashall for PDO xml : " + requestPdo);
            }

            log.debug("Finished unmarshall of XML");
            this.reqMessageType = (RequestMessageType) jaxbElement.getValue();

        } catch (JAXBUtilException e) {
            e.printStackTrace();
            log.error(e.getMessage(), e);
            throw new I2B2Exception("Umashaller error: " + e.getMessage() + requestPdo, e);
        }
    }

    /**
     * Function to get RequestData object from i2b2 request message type
     * @return
     * @throws JAXBUtilException
     */

    public BodyType getRequestType() throws JAXBUtilException {
        BodyType bodyType = reqMessageType.getMessageBody();
        //   JAXBUnWrapHelper helper = new JAXBUnWrapHelper();
        //  Object requestType =  helper.getObjectByClass(bodyType.getAny(),
        //              GetUserConfigurationType.class);

        return bodyType;
    }

    /*
    public GetUserConfigurationType getRequestType() throws JAXBUtilException {
    BodyType bodyType = reqMessageType.getMessageBody();
    JAXBUnWrapHelper helper = new JAXBUnWrapHelper();
    GetUserConfigurationType requestType = (GetUserConfigurationType) helper.getObjectByClass(bodyType.getAny(),
          GetUserConfigurationType.class);
        
    return requestType;
    }
    */

    public RequestMessageType getRequestMessageType() {
        return reqMessageType;
    }
}