/*
* 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.datavo;
import java.util.List;
import org.springframework.beans.factory.BeanFactory;
import edu.harvard.i2b2.common.util.jaxb.JAXBUtil;
import edu.harvard.i2b2.crc.util.QueryProcessorUtil;
/**
* Factory class to create jaxb context Since jaxb context is tread safe, only
* one instance is created for this cell. The package used for jaxb context is
* read from spring config file $Id: CRCJAXBUtil.java,v 1.6 2007/09/11 20:05:40
* rk903 Exp $
*
* @author rkuttan
*/
public class CRCJAXBUtil {
private static JAXBUtil jaxbUtil = null;
private static JAXBUtil queryDefjaxbUtil = null;
private static JAXBUtil analysisDefjaxbUtil = null;
//private CRCJAXBUtil() {
//}
//@SuppressWarnings("unchecked")
public static JAXBUtil getJAXBUtil() {
if (jaxbUtil == null) {
BeanFactory springBean = QueryProcessorUtil.getInstance()
.getSpringBeanFactory();
List jaxbPackageName = (List) springBean.getBean("jaxbPackage");
String[] jaxbPackageNameArray = (String[]) jaxbPackageName
.toArray(new String[] {
});
jaxbUtil = new JAXBUtil(
jaxbPackageNameArray);
}
return jaxbUtil;
}
//@SuppressWarnings("unchecked")
public static JAXBUtil getQueryDefJAXBUtil() {
if (queryDefjaxbUtil == null) {
queryDefjaxbUtil = new JAXBUtil(
edu.harvard.i2b2.crc.datavo.setfinder.query.QueryDefinitionType.class);
}
return queryDefjaxbUtil;
}
//@SuppressWarnings("unchecked")
public static JAXBUtil getAnalysisDefJAXBUtil() {
if (analysisDefjaxbUtil == null) {
analysisDefjaxbUtil = new JAXBUtil(
edu.harvard.i2b2.crc.datavo.setfinder.query.AnalysisDefinitionRequestType.class);
}
return analysisDefjaxbUtil;
}
}