/*
* 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.dao;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.sql.DataSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import edu.harvard.i2b2.common.exception.I2B2Exception;
import edu.harvard.i2b2.crc.datavo.pdo.ParamType;
/**
* DAO abstract class to provide common dao functions $Id: CRCLoaderDAO.java,v
* 1.3 2008/06/03 21:09:03 rk903 Exp $
*
* @author rkuttan
* @see Connection
* @see Session
*/
public class CRCLoaderDAO {
/** log **/
protected final Log log = LogFactory.getLog(getClass());
protected DataSource dataSource = null;
protected String dbSchemaName = null;
public final static String DATASOUCE_JNDI_NAME = "java:QueryToolDS";
public DataSource getDataSource() {
return dataSource;
}
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
public String getDbSchemaName() {
return this.dbSchemaName;
}
public void setDbSchemaName(String dbSchemaName) {
if (dbSchemaName != null && dbSchemaName.endsWith(".")) {
this.dbSchemaName = dbSchemaName.trim();
} else if (dbSchemaName != null) {
this.dbSchemaName = dbSchemaName.trim() + ".";
}
}
public Map<String, ParamType> buildNVParam(List<ParamType> paramTypeList) {
Map<String, ParamType> paramMap = new HashMap<String, ParamType>();
for (ParamType paramType : paramTypeList) {
if (paramType.getColumn() != null) {
paramMap.put(paramType.getColumn(), paramType);
}
}
return paramMap;
}
public void getSQLServerProcedureError(String serverType,
CallableStatement callStmt, int outParamIndex) throws SQLException,
I2B2Exception {
if (serverType.equalsIgnoreCase(DataSourceLookupDAOFactory.SQLSERVER)) {
String errorMsg = callStmt.getString(outParamIndex);
if (errorMsg != null) {
System.out.println("error codde" + errorMsg);
throw new I2B2Exception("Error from stored procedure ["
+ errorMsg + "]");
}
}
}
}