com.partnersoft.v3x.io.sql
Class SQLDataRecordSource

java.lang.Object
  extended by com.partnersoft.v3x.data.DataRecordSource
      extended by com.partnersoft.v3x.io.formats.record.StreamingDataRecordSource
          extended by com.partnersoft.v3x.io.sql.SQLDataRecordSource

public class SQLDataRecordSource
extends StreamingDataRecordSource

A source for data records, derived from an SQL query.


Field Summary
 
Fields inherited from class com.partnersoft.v3x.data.DataRecordSource
iteratorWrapper, mapWrapper, parameters, showProgress, verbose
 
Constructor Summary
SQLDataRecordSource()
           
SQLDataRecordSource(DatabaseConnectionConfig database, java.sql.Connection connection, java.lang.String query)
           
SQLDataRecordSource(DatabaseConnectionConfig database, java.lang.String query)
           
 
Method Summary
 void close()
          Do any cleanup needed.
protected  void copyStateFrom(java.lang.Object nother)
           
 DatabaseConnectionConfig getDatabase()
           
 java.lang.String getQuery()
           
protected  void initialize(java.util.ArrayList fieldNames)
          Subclasses must implement this to set themselves up and populate the fieldNames list.
protected  boolean nextRecord(java.util.ArrayList fillThis)
          Subclasses must implement this to set the current values in the given arraylist.
 void setDatabase(DatabaseConnectionConfig newDatabase)
           
 void setQuery(java.lang.String newQuery)
           
 
Methods inherited from class com.partnersoft.v3x.io.formats.record.StreamingDataRecordSource
createInputStream, getPath, getPaths, setInputStream, setPath, setPaths
 
Methods inherited from class com.partnersoft.v3x.data.DataRecordSource
asIterator, asMap, clear, clone, containsKey, containsValue, entrySet, fieldNames, fieldValues, get, getAfterActions, getBeforeActions, getContentsMap, getParameters, getPosition, getShowProgress, getTransforms, getTransformScript, hasNext, initialize, isEmpty, isVerbose, keySet, next, put, putAll, remove, remove, reset, setAfterActions, setBeforeActions, setParameters, setShowProgress, setTransforms, setTransformScript, setVerbose, size, values
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SQLDataRecordSource

public SQLDataRecordSource()

SQLDataRecordSource

public SQLDataRecordSource(DatabaseConnectionConfig database,
                           java.lang.String query)

SQLDataRecordSource

public SQLDataRecordSource(DatabaseConnectionConfig database,
                           java.sql.Connection connection,
                           java.lang.String query)
Method Detail

initialize

protected void initialize(java.util.ArrayList fieldNames)
Description copied from class: DataRecordSource
Subclasses must implement this to set themselves up and populate the fieldNames list. The list is empty to start with.

Specified by:
initialize in class DataRecordSource

nextRecord

protected boolean nextRecord(java.util.ArrayList fillThis)
Description copied from class: DataRecordSource
Subclasses must implement this to set the current values in the given arraylist. While this does require pulling all values from e.g. a ResultSet, it prevents oddities such as the can-only-fetch-once bug in MSAccess. The list will already be populated with values, so set(index, value) will work for all indices (assuming your record is the same size as the fieldNames list, of course). It is not nulled out, so be sure to set all values. This is done as a prefetch; return true if the prefetch succeeds.

Specified by:
nextRecord in class DataRecordSource

close

public void close()
Description copied from class: DataRecordSource
Do any cleanup needed. Be sure to call super.close().

Overrides:
close in class DataRecordSource

getDatabase

public DatabaseConnectionConfig getDatabase()

setDatabase

public void setDatabase(DatabaseConnectionConfig newDatabase)

getQuery

public java.lang.String getQuery()

setQuery

public void setQuery(java.lang.String newQuery)

copyStateFrom

protected void copyStateFrom(java.lang.Object nother)
Overrides:
copyStateFrom in class StreamingDataRecordSource