org.vivoweb.harvester.util.repo
Class JDBCRecordHandler

java.lang.Object
  extended by org.vivoweb.harvester.util.repo.RecordHandler
      extended by org.vivoweb.harvester.util.repo.JDBCRecordHandler
All Implemented Interfaces:
java.lang.Iterable<Record>

public class JDBCRecordHandler
extends RecordHandler

RecordHandler that stores data in a JDBC Database

Author:
Christopher Haines (hainesc@ctrip.ufl.edu)

Field Summary
protected  java.sql.Statement cursor
          Database statement processor
protected  java.lang.String dataField
          Field to store data in
protected  java.sql.Connection db
          Database connection
protected static org.slf4j.Logger log
          SLF4J Logger
protected  java.lang.String table
          Table name
 
Constructor Summary
protected JDBCRecordHandler()
          Default Constructor
  JDBCRecordHandler(java.lang.String jdbcDriverClass, java.lang.String connLine, java.lang.String username, java.lang.String password, java.lang.String tableName, java.lang.String dataFieldName)
          Constructor
  JDBCRecordHandler(java.lang.String jdbcDriverClass, java.lang.String connType, java.lang.String host, java.lang.String port, java.lang.String dbName, java.lang.String username, java.lang.String password, java.lang.String tableName, java.lang.String dataFieldName)
          Constructor
 
Method Summary
protected  void addMetaData(Record rec, RecordMetaData rmd)
          Adds a metadata record
 boolean addRecord(Record rec, java.lang.Class<?> creator, boolean overwrite)
          Adds a record to the RecordHandler
 void close()
          Closes the recordhandler
protected  void delMetaData(java.lang.String recID)
          Deletes all metadata for a record
 void delRecord(java.lang.String recID)
          Delete the specified Record
protected  void finalize()
           
 java.util.Set<java.lang.String> find(java.lang.String idText)
          Find records with idText in their id
 java.lang.String getRecordData(java.lang.String recID)
          Retrieve the data for a given record
 java.util.SortedSet<RecordMetaData> getRecordMetaData(java.lang.String recID)
          Retrieves all metadata for a given record
 java.util.Iterator<Record> iterator()
           
 void setParams(java.util.Map<java.lang.String,java.lang.String> params)
          Sets parameters from param list
 
Methods inherited from class org.vivoweb.harvester.util.repo.RecordHandler
addMetaData, addRecord, addRecord, addRecord, getLastMetaData, getParam, getRecord, isOverwriteDefault, needsProcessed, needsUpdated, parseConfig, parseConfig, parseConfig, parseConfig, parseConfig, parseConfig, parseConfig, setOverwriteDefault, setProcessed, setWritten
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

protected static org.slf4j.Logger log
SLF4J Logger


db

protected java.sql.Connection db
Database connection


cursor

protected java.sql.Statement cursor
Database statement processor


table

protected java.lang.String table
Table name


dataField

protected java.lang.String dataField
Field to store data in

Constructor Detail

JDBCRecordHandler

protected JDBCRecordHandler()
Default Constructor


JDBCRecordHandler

public JDBCRecordHandler(java.lang.String jdbcDriverClass,
                         java.lang.String connLine,
                         java.lang.String username,
                         java.lang.String password,
                         java.lang.String tableName,
                         java.lang.String dataFieldName)
                  throws java.io.IOException
Constructor

Parameters:
jdbcDriverClass - jdbc driver class
connLine - jdbc connection string
username - username to use for connection
password - password to use for connection
tableName - name of table to use
dataFieldName - name of field to store data in
Throws:
java.io.IOException - invalidly configured database

JDBCRecordHandler

public JDBCRecordHandler(java.lang.String jdbcDriverClass,
                         java.lang.String connType,
                         java.lang.String host,
                         java.lang.String port,
                         java.lang.String dbName,
                         java.lang.String username,
                         java.lang.String password,
                         java.lang.String tableName,
                         java.lang.String dataFieldName)
                  throws java.io.IOException
Constructor

Parameters:
jdbcDriverClass - jdbc driver class
connType - jdbc connection type
host - host to connect to
port - port to connect on
dbName - name of database to connect to
username - username to use for connection
password - password to use for connection
tableName - name of table to use
dataFieldName - name of field to store data in
Throws:
java.io.IOException - invalidly configured database
Method Detail

finalize

protected void finalize()
                 throws java.lang.Throwable
Overrides:
finalize in class java.lang.Object
Throws:
java.lang.Throwable

addRecord

public boolean addRecord(Record rec,
                         java.lang.Class<?> creator,
                         boolean overwrite)
                  throws java.io.IOException
Description copied from class: RecordHandler
Adds a record to the RecordHandler

Specified by:
addRecord in class RecordHandler
Parameters:
rec - record to add
creator - the creator
overwrite - when set to true, will automatically overwrite existing records
Returns:
true if added, false if not needed (aka record already existed and was the same)
Throws:
java.io.IOException - error adding

delRecord

public void delRecord(java.lang.String recID)
               throws java.io.IOException
Description copied from class: RecordHandler
Delete the specified Record

Specified by:
delRecord in class RecordHandler
Parameters:
recID - id of record to delete
Throws:
java.io.IOException - i/o error

getRecordData

public java.lang.String getRecordData(java.lang.String recID)
                               throws java.io.IOException
Description copied from class: RecordHandler
Retrieve the data for a given record

Specified by:
getRecordData in class RecordHandler
Parameters:
recID - id of record to retrieve
Returns:
data from record
Throws:
java.io.IOException - error reading

iterator

public java.util.Iterator<Record> iterator()

setParams

public void setParams(java.util.Map<java.lang.String,java.lang.String> params)
               throws java.lang.IllegalArgumentException,
                      java.io.IOException
Description copied from class: RecordHandler
Sets parameters from param list

Specified by:
setParams in class RecordHandler
Parameters:
params - map of parameters
Throws:
java.lang.IllegalArgumentException - invalid parameters
java.io.IOException - error

addMetaData

protected void addMetaData(Record rec,
                           RecordMetaData rmd)
                    throws java.io.IOException
Description copied from class: RecordHandler
Adds a metadata record

Specified by:
addMetaData in class RecordHandler
Parameters:
rec - record to add metadata for
rmd - the metadata record
Throws:
java.io.IOException - error adding meta data

delMetaData

protected void delMetaData(java.lang.String recID)
                    throws java.io.IOException
Description copied from class: RecordHandler
Deletes all metadata for a record

Specified by:
delMetaData in class RecordHandler
Parameters:
recID - record id to delete metadata for
Throws:
java.io.IOException - error deleting metadata

getRecordMetaData

public java.util.SortedSet<RecordMetaData> getRecordMetaData(java.lang.String recID)
                                                      throws java.io.IOException
Description copied from class: RecordHandler
Retrieves all metadata for a given record

Specified by:
getRecordMetaData in class RecordHandler
Parameters:
recID - id of record to retrieve metadata for
Returns:
the metadata map
Throws:
java.io.IOException - error retrieving record metadata

close

public void close()
           throws java.io.IOException
Description copied from class: RecordHandler
Closes the recordhandler

Specified by:
close in class RecordHandler
Throws:
java.io.IOException - error closing

find

public java.util.Set<java.lang.String> find(java.lang.String idText)
                                     throws java.io.IOException
Description copied from class: RecordHandler
Find records with idText in their id

Specified by:
find in class RecordHandler
Parameters:
idText - the text to find
Returns:
list of ids that match
Throws:
java.io.IOException - error searching