/*
* 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:
* Raj Kuttan
* Lori Phillips
*/
package edu.harvard.i2b2.ontology.ws;
import edu.harvard.i2b2.common.exception.I2B2Exception;
import edu.harvard.i2b2.common.util.jaxb.JAXBUtilException;
import edu.harvard.i2b2.ontology.datavo.i2b2message.MessageHeaderType;
import edu.harvard.i2b2.ontology.datavo.i2b2message.RequestMessageType;
import edu.harvard.i2b2.ontology.util.OntologyJAXBUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import javax.xml.bind.JAXBElement;
/**
* The RequestDataMessage class is a helper class to build Ontology messages in the
* i2b2 format
*/
public abstract class RequestDataMessage{
private static Log log = LogFactory.getLog(RequestDataMessage.class);
RequestMessageType reqMessageType = null;
/**
* The constructor
*/
public RequestDataMessage(String requestVdo) throws I2B2Exception {
try {
JAXBElement jaxbElement = OntologyJAXBUtil.getJAXBUtil().unMashallFromString(requestVdo);
if (jaxbElement == null) {
throw new I2B2Exception(
"Null value from unmarshall for VDO xml : " + requestVdo);
}
this.reqMessageType = (RequestMessageType) jaxbElement.getValue();
} catch (JAXBUtilException e) {
log.error(e.getMessage(), e);
throw new I2B2Exception("Umarshaller error: " + e.getMessage() +
requestVdo, e);
}
}
public RequestMessageType getRequestMessageType() {
return reqMessageType;
}
public MessageHeaderType getMessageHeaderType() {
return reqMessageType.getMessageHeader();
}
}