org.sormula.translator
Class ColumnsTranslator<R>

java.lang.Object
  extended by org.sormula.translator.ColumnsTranslator<R>
Type Parameters:
R - class of row to translate
Direct Known Subclasses:
AbstractWhereTranslator, OrderByTranslator, RowTranslator

public class ColumnsTranslator<R>
extends java.lang.Object

Base class for translators that are made of a list of column translators. Translates row object columns to/from JDBC objects for a row class.

Since:
1.0
Author:
Jeff Miller

Constructor Summary
ColumnsTranslator(java.lang.Class<R> rowClass)
          Constructs for a row class.
 
Method Summary
 void addColumnTranslator(ColumnTranslator<R> c)
          Adds a column translator to use in read(ResultSet, int, Object) and write(PreparedStatement, int, Object).
 java.lang.String createColumnParameterPhrase()
          Creates sql phrase of column names with parameters .
 java.lang.String createColumnPhrase()
          Gets sql phrase as list of columns.
 java.lang.String createParameterPhrase()
          Creates parameter placeholders for all columns.
 ColumnTranslator<R> getColumnTranslator(java.lang.String fieldName)
          Gets a column translator associated with a field.
 java.util.List<ColumnTranslator<R>> getColumnTranslatorList()
          Gets list of all column translators used by this translator.
 java.lang.Class<R> getRowClass()
          Gets Java class type for row.
protected  void initColumnTranslatorList(int columns)
          Initializes objects to hold all column information.
 boolean isIncludeIdentityColumns()
          Tests if identity columns are used by this translator.
 int read(java.sql.ResultSet resultSet, int columnIndex, R row)
          Reads a record from a result set.
 void setIncludeIdentityColumns(boolean includeIdentityColumns)
          Sets when to use identity columns.
 int write(java.sql.PreparedStatement preparedStatement, int parameterIndex, R row)
          Sets parameters in a prepared statement.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ColumnsTranslator

public ColumnsTranslator(java.lang.Class<R> rowClass)
                  throws TranslatorException
Constructs for a row class.

Parameters:
rowClass - class of row to translate
Throws:
TranslatorException - if error
Method Detail

isIncludeIdentityColumns

public boolean isIncludeIdentityColumns()
Tests if identity columns are used by this translator. Default is true. Typically it is true except for insert operations.

Returns:
true to include all columns; false to include only non identity columns

setIncludeIdentityColumns

public void setIncludeIdentityColumns(boolean includeIdentityColumns)
Sets when to use identity columns.

Parameters:
includeIdentityColumns - true to include all columns; false to include only non identity columns

initColumnTranslatorList

protected void initColumnTranslatorList(int columns)
Initializes objects to hold all column information.

Parameters:
columns - approximatenumber of columns that will be in translator (used as initial capacity)

read

public int read(java.sql.ResultSet resultSet,
                int columnIndex,
                R row)
         throws TranslatorException
Reads a record from a result set.

Parameters:
resultSet - JDBC result set
columnIndex - starting column index
row - write values into this object
Returns:
last parameter index + 1
Throws:
TranslatorException - if error

write

public int write(java.sql.PreparedStatement preparedStatement,
                 int parameterIndex,
                 R row)
          throws TranslatorException
Sets parameters in a prepared statement.

Parameters:
preparedStatement - set parameters for this prepared statment
parameterIndex - starting parameter index
row - read parameters from this row object
Returns:
last parameter index + 1
Throws:
TranslatorException - if error

addColumnTranslator

public void addColumnTranslator(ColumnTranslator<R> c)
Adds a column translator to use in read(ResultSet, int, Object) and write(PreparedStatement, int, Object).

Parameters:
c - column translator

getColumnTranslator

public ColumnTranslator<R> getColumnTranslator(java.lang.String fieldName)
Gets a column translator associated with a field.

Parameters:
fieldName - row class field name
Returns:
column translator for column or null if none found

getRowClass

public java.lang.Class<R> getRowClass()
Gets Java class type for row.

Returns:
row class for this translator

createColumnPhrase

public java.lang.String createColumnPhrase()
Gets sql phrase as list of columns. Typically used in select and insert statements.

Returns:
"c1, c2, c3..."

createColumnParameterPhrase

public java.lang.String createColumnParameterPhrase()
Creates sql phrase of column names with parameters . Typically used by where clause and update statement.

Returns:
"c1=?, c2=?, c3=?..."

createParameterPhrase

public java.lang.String createParameterPhrase()
Creates parameter placeholders for all columns. Typically used by insert statement.

Returns:
"?, ?, ?..."

getColumnTranslatorList

public java.util.List<ColumnTranslator<R>> getColumnTranslatorList()
Gets list of all column translators used by this translator.

Returns:
all column translators for this instance