package edu.harvard.i2b2.crc.dao.pdo.input;
import edu.harvard.i2b2.common.exception.I2B2DAOException;
import edu.harvard.i2b2.crc.datavo.db.DataSourceLookup;
import edu.harvard.i2b2.crc.datavo.pdo.query.InputOptionListType;
import edu.harvard.i2b2.crc.datavo.pdo.query.RangeType;
public class PDOFactory {
public static IInputOptionListHandler buildInputListHandler(
InputOptionListType inputOptionList,
DataSourceLookup dataSourceLookup) throws I2B2DAOException {
IInputOptionListHandler inputOptionListHandler = null;
if (inputOptionList.getPatientList() != null) {
inputOptionListHandler = new PatientListTypeHandler(
dataSourceLookup, inputOptionList.getPatientList());
} else if (inputOptionList.getEventList() != null) {
inputOptionListHandler = new VisitListTypeHandler(dataSourceLookup,
inputOptionList.getEventList());
} else if (inputOptionList.getPidList() != null) {
inputOptionListHandler = new PidListTypeHandler(dataSourceLookup,
inputOptionList.getPidList());
} else if (inputOptionList.getEidList() != null) {
inputOptionListHandler = new EidListTypeHandler(dataSourceLookup,
inputOptionList.getEidList());
} else {
throw new I2B2DAOException(
"Input option list does not contain visit or patient list");
}
return inputOptionListHandler;
}
public static RangeType getRangeType(InputOptionListType inputOptionList)
throws I2B2DAOException {
if (inputOptionList.getPatientList() != null) {
return inputOptionList.getPatientList();
} else if (inputOptionList.getEventList() != null) {
return inputOptionList.getEventList();
} else if (inputOptionList.getPidList() != null) {
return inputOptionList.getPidList();
} else if (inputOptionList.getEidList() != null) {
return inputOptionList.getEidList();
} else {
throw new I2B2DAOException(
"Input option list does not contain visit or patient list");
}
}
}