public abstract class AbstractJdbcWriter
extends CasConsumer_ImplBase
Modifier and Type | Class and Description |
---|---|
protected static interface |
AbstractJdbcWriter.FieldInfo |
protected static interface |
AbstractJdbcWriter.TableInfo |
protected static class |
AbstractJdbcWriter.TableSqlInfo |
Modifier and Type | Field and Description |
---|---|
protected java.util.Map<java.lang.String,AbstractJdbcWriter.TableSqlInfo> |
_tableSqlInfoMap |
private static Logger |
LOGGER |
private static int |
MAX_BATCH_SIZE |
static java.lang.String |
PARAM_DB_CONN_RESRC |
Constructor and Description |
---|
AbstractJdbcWriter() |
Modifier and Type | Method and Description |
---|---|
void |
collectionProcessComplete(ProcessTrace arg0)
closes the PreparedStatements
|
protected static java.lang.String |
createRowInsertSql(java.lang.String tableName,
AbstractJdbcWriter.FieldInfo... fieldInfos) |
protected abstract java.util.Collection<AbstractJdbcWriter.TableInfo> |
getTableInfos()
Called from initialize()
|
protected java.util.Map<java.lang.String,AbstractJdbcWriter.TableSqlInfo> |
getTableSqlInfoMap() |
void |
initialize() |
void |
processCas(CAS aCAS) |
protected static void |
setFieldInfoValue(java.util.Map<AbstractJdbcWriter.FieldInfo,java.lang.Object> fieldInfoMap,
AbstractJdbcWriter.FieldInfo fieldInfo,
java.lang.Object value)
This is a safety method to set values of fieldInfoMaps instead of doing a direct .put in the map.
|
protected abstract void |
writeJCasInformation(JCas jcas,
int encounterNum,
long patientNum,
java.lang.String providerId,
java.sql.Timestamp startDate)
The main "process" method, called from processCas
|
protected static int |
writeTableRow(java.sql.PreparedStatement preparedStatement,
int batchSize,
java.util.Map<? extends AbstractJdbcWriter.FieldInfo,java.lang.Object> fieldInfoMap)
Adds a new row of values to a batch in the prepared statement.
|
private static final Logger LOGGER
public static final java.lang.String PARAM_DB_CONN_RESRC
private static final int MAX_BATCH_SIZE
protected final java.util.Map<java.lang.String,AbstractJdbcWriter.TableSqlInfo> _tableSqlInfoMap
public void initialize() throws ResourceInitializationException
ResourceInitializationException
public void collectionProcessComplete(ProcessTrace arg0) throws ResourceProcessException, java.io.IOException
ResourceProcessException
java.io.IOException
public void processCas(CAS aCAS) throws ResourceProcessException
ResourceProcessException
protected abstract java.util.Collection<AbstractJdbcWriter.TableInfo> getTableInfos()
protected abstract void writeJCasInformation(JCas jcas, int encounterNum, long patientNum, java.lang.String providerId, java.sql.Timestamp startDate) throws java.sql.SQLException
jcas
- -encounterNum
- -patientNum
- -providerId
- -startDate
- -java.sql.SQLException
- if implementations throw SQLExceptionprotected java.util.Map<java.lang.String,AbstractJdbcWriter.TableSqlInfo> getTableSqlInfoMap()
protected static void setFieldInfoValue(java.util.Map<AbstractJdbcWriter.FieldInfo,java.lang.Object> fieldInfoMap, AbstractJdbcWriter.FieldInfo fieldInfo, java.lang.Object value)
fieldInfoMap
- map in which to set the valuefieldInfo
- keyvalue
- valueprotected static int writeTableRow(java.sql.PreparedStatement preparedStatement, int batchSize, java.util.Map<? extends AbstractJdbcWriter.FieldInfo,java.lang.Object> fieldInfoMap) throws java.sql.SQLException
preparedStatement
- -batchSize
- the current batch row count in the prepared statementfieldInfoMap
- for row value assignmentjava.sql.SQLException
- if a PreparedStatement call throws one or if there is a type, value mismatch in fieldInfoMapprotected static java.lang.String createRowInsertSql(java.lang.String tableName, AbstractJdbcWriter.FieldInfo... fieldInfos) throws java.sql.SQLDataException
tableName
- -fieldInfos
- -java.sql.SQLDataException