com.is.jrf
Class StringColumnSpec

java.lang.Object
  |
  +--com.is.jrf.AbstractColumnSpec
        |
        +--com.is.jrf.StringColumnSpec
All Implemented Interfaces:
ColumnSpec, JRFConstants

public class StringColumnSpec
extends AbstractColumnSpec

This subclass of AbstractColumnSpec does String-specific things.


Field Summary
protected static java.lang.Class s_class
           
 
Fields inherited from class com.is.jrf.AbstractColumnSpec
EQUALS, i_columnName, i_default, i_getter, i_naturalPrimaryKey, i_optimisticLock, i_required, i_sequencedPrimaryKey, i_setter, i_subtypeIdentifier, i_unique, NOT_EQUALS
 
Fields inherited from interface com.is.jrf.JRFConstants
CURRENT_DATE, CURRENT_TIMESTAMP, DEFAULT_TO_EMPTY_STRING, DEFAULT_TO_FALSE, DEFAULT_TO_NOW, DEFAULT_TO_NULL, DEFAULT_TO_ONE, DEFAULT_TO_TODAY, DEFAULT_TO_TRUE, DEFAULT_TO_ZERO, NATURAL_PRIMARY_KEY, NO_POST_FIND, OPTIMISTIC_LOCK, REQUIRED, SEQUENCED_PRIMARY_KEY, SUBTYPE_IDENTIFIER, UNIQUE
 
Constructor Summary
StringColumnSpec(java.lang.String columnName, java.lang.String getter, java.lang.String setter, java.lang.Object defaultValue)
           
StringColumnSpec(java.lang.String columnName, java.lang.String getter, java.lang.String setter, java.lang.Object defaultValue, int option1)
           
StringColumnSpec(java.lang.String columnName, java.lang.String getter, java.lang.String setter, java.lang.Object defaultValue, int option1, int option2)
           
StringColumnSpec(java.lang.String columnName, java.lang.String getter, java.lang.String setter, java.lang.Object defaultValue, int option1, int option2, int option3)
           
 
Method Summary
 JoinColumn buildJoinColumn()
           
 java.lang.Object decode(java.lang.String aString)
          This method goes with encode().
 java.lang.String formatForSql(java.lang.Object obj, DatabasePolicy dbPolicy)
          This method overrides the superclass implementation.
 java.lang.Class getColumnClass()
          See IntegerColumnSpec for example of how to implement:
 java.lang.Object getColumnValueFrom(JDBCHelper helper)
          Return a String from JDBCHelper.
 java.lang.String getSQLColumnType(DatabasePolicy dbPolicy)
          Return the ANSI standard SQL column type.
 java.lang.Object validateRequired(PersistentObject aPO)
          This is an override of the superclass implementation.
 
Methods inherited from class com.is.jrf.AbstractColumnSpec
buildNameValuePair, buildWhereClause, columnDefinitionString, copyAttribute, copyColumnValueToPersistentObject, decodeToPersistentObject, encode, encodeFromPersistentObject, getColumnName, getDefault, getFullyQualifiedColumnName, getGetter, getSetter, getSqlValueFrom, getValueFrom, getValueFrom, isNaturalPrimaryKey, isOptimisticLock, isPrimaryKey, isRequired, isSequencedPrimaryKey, isSubtypeIdentifier, isUnique, optimisticLockDefaultValue, setRequired, setValueTo, setValueTo, validateUnique, validateUnique
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

s_class

protected static java.lang.Class s_class
Constructor Detail

StringColumnSpec

public StringColumnSpec(java.lang.String columnName,
                        java.lang.String getter,
                        java.lang.String setter,
                        java.lang.Object defaultValue)

StringColumnSpec

public StringColumnSpec(java.lang.String columnName,
                        java.lang.String getter,
                        java.lang.String setter,
                        java.lang.Object defaultValue,
                        int option1)

StringColumnSpec

public StringColumnSpec(java.lang.String columnName,
                        java.lang.String getter,
                        java.lang.String setter,
                        java.lang.Object defaultValue,
                        int option1,
                        int option2)

StringColumnSpec

public StringColumnSpec(java.lang.String columnName,
                        java.lang.String getter,
                        java.lang.String setter,
                        java.lang.Object defaultValue,
                        int option1,
                        int option2,
                        int option3)
Method Detail

formatForSql

public java.lang.String formatForSql(java.lang.Object obj,
                                     DatabasePolicy dbPolicy)
This method overrides the superclass implementation. A string of "null" is returned if object is null, otherwise it returns a String with quotes around it. Internal single quotes are converted to two single quotes and the string is wrapped in single quotes.
Overrides:
formatForSql in class AbstractColumnSpec
Parameters:
aValueObject - a value of type 'ValueObject'
Returns:
a value of type 'String'

decode

public java.lang.Object decode(java.lang.String aString)
This method goes with encode(). The String parameter must have been created by the encode() method.
Overrides:
decode in class AbstractColumnSpec
Parameters:
aString - a value of type 'String'
Returns:
a value of type 'Object' (This actually will be a String or null)

getColumnClass

public java.lang.Class getColumnClass()
Description copied from class: AbstractColumnSpec
See IntegerColumnSpec for example of how to implement:
Overrides:
getColumnClass in class AbstractColumnSpec

getColumnValueFrom

public java.lang.Object getColumnValueFrom(JDBCHelper helper)
                                    throws java.sql.SQLException
Return a String from JDBCHelper. If String is one blank, return an empty string. This resolves a strange issue with SQLServer (and maybe Sybase) that keeps returning empty or whitespace strings as one blank character. If one blank is truly desired, then maybe this should go into the DatabasePolicy, but then we'll have differing behavior when switching databases.
Overrides:
getColumnValueFrom in class AbstractColumnSpec
Parameters:
helper - a value of type 'JDBCHelper'
Returns:
a value of type 'Object'
Throws:
java.sql.SQLException - if an error occurs in JDBCHelper

validateRequired

public java.lang.Object validateRequired(PersistentObject aPO)
                                  throws MissingAttributeException
This is an override of the superclass implementation. This method adds a check to make sure the string is not empty or blank.
Overrides:
validateRequired in class AbstractColumnSpec
Parameters:
aPO - a value of type 'PersistentObject'
Returns:
a value of type 'Object'
Throws:
MissingAttributeException - if an error occurs

getSQLColumnType

public java.lang.String getSQLColumnType(DatabasePolicy dbPolicy)
Return the ANSI standard SQL column type. This was written to support the test suites. If there is no standard that will work across platforms, then we'll add a method to dbPolicy and return its' value.
Overrides:
getSQLColumnType in class AbstractColumnSpec
Parameters:
dbPolicy - a value of type 'DatabasePolicy'
Returns:
a value of type 'String'

buildJoinColumn

public JoinColumn buildJoinColumn()
Overrides:
buildJoinColumn in class AbstractColumnSpec
Following copied from class: com.is.jrf.AbstractColumnSpec
Returns:
a JoinColumn subclass instance with data from myself.