Package simpleorm.dataset
Class SFieldEnum<T extends java.lang.Enum<T>>
- java.lang.Object
-
- simpleorm.dataset.SFieldMeta
-
- simpleorm.dataset.SFieldScalar
-
- simpleorm.dataset.SFieldEnum<T>
-
- All Implemented Interfaces:
java.io.Serializable
- Direct Known Subclasses:
EnumField
public class SFieldEnum<T extends java.lang.Enum<T>> extends SFieldScalar
Represents Enum field meta data. Note that internal storage is now Enum, not String, which is more consistent if less flexible eg. if database has bad data. So getObject() returns Enum.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class simpleorm.dataset.SFieldScalar
sqlDataTypeOverride, theGenerator
-
Fields inherited from class simpleorm.dataset.SFieldMeta
quoteName
-
-
Constructor Summary
Constructors Constructor Description SFieldEnum(SRecordMeta<?> meta, java.lang.String columnName, java.lang.Class<T> enumType, SFieldFlags... pvals)enumTypeis the Enum type backing this field
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.ObjectconvertToDataSetFieldType(java.lang.Object raw)Internal representation of SFieldEnum is Enum.java.lang.StringdefaultSqlDataType()The default data type if not overriden by overrideSqlDataType.java.lang.Class<T>getEnumClass()booleanisFKeyCompatible(SFieldScalar field)Nota : foreign key is allowed if the enum values can be stored in the database...intjavaSqlType()java.lang.ObjectqueryFieldValue(java.sql.ResultSet rs, int sqlIndex)Issues a JDBC get*() on the result set for the field and converts the database type to the appropriate internal type, eg, Double for a double field.java.lang.ObjectwriteFieldValue(java.lang.Object value)Converts a single value from internal representation to database representation.-
Methods inherited from class simpleorm.dataset.SFieldScalar
getColumnName, getGeneratorMode, getGeneratorParameter, getMaxSize, getReferences, getTheGenerator, isForeignKey, isGenerated, isMandatory, isNotOptimisticLocked, isPrimary, overrideSqlDataType, setGeneratorMode, setMaxSize, setTheGenerator, toLongerString
-
Methods inherited from class simpleorm.dataset.SFieldMeta
addFlag, addValidator, doValidate, equals, getFieldName, getFlags, getRecordMeta, getUserProperties, getUserProperty, getValidators, hashCode, isDescriptive, isUnqueried, nextGeneratedValue, putUserProperty, readResolve, setQuoted, toString, writeFieldValue
-
-
-
-
Constructor Detail
-
SFieldEnum
public SFieldEnum(SRecordMeta<?> meta, java.lang.String columnName, java.lang.Class<T> enumType, SFieldFlags... pvals)
enumTypeis the Enum type backing this field
-
-
Method Detail
-
getEnumClass
public java.lang.Class<T> getEnumClass()
-
queryFieldValue
public java.lang.Object queryFieldValue(java.sql.ResultSet rs, int sqlIndex) throws java.lang.ExceptionDescription copied from class:SFieldMetaIssues a JDBC get*() on the result set for the field and converts the database type to the appropriate internal type, eg, Double for a double field. The first column has sqlIndex==1.- Specified by:
queryFieldValuein classSFieldMeta- Throws:
java.lang.Exception
-
convertToDataSetFieldType
protected java.lang.Object convertToDataSetFieldType(java.lang.Object raw)
Internal representation of SFieldEnum is Enum.- Specified by:
convertToDataSetFieldTypein classSFieldMeta
-
defaultSqlDataType
public java.lang.String defaultSqlDataType()
Description copied from class:SFieldScalarThe default data type if not overriden by overrideSqlDataType. This is only called when the data type is actually needed by CREATE TABLE, ie if no sqlDataTypeOverride is specified.- Specified by:
defaultSqlDataTypein classSFieldScalar
-
isFKeyCompatible
public boolean isFKeyCompatible(SFieldScalar field)
Nota : foreign key is allowed if the enum values can be stored in the database... We don't force checking the values (ie use same enum type)
-
writeFieldValue
public java.lang.Object writeFieldValue(java.lang.Object value)
Description copied from class:SFieldMetaConverts a single value from internal representation to database representation. Used primarily by the writeFieldValue above, but also used for converting optimistic lock values in SRecordInstance.flush.Overidden by SFieldBoolean. (not by SFieldString).
NOTE: This does NOT need to handle NULL values (those are handled seperately by SRecordInstance)
- Overrides:
writeFieldValuein classSFieldMeta
-
javaSqlType
public int javaSqlType()
- Specified by:
javaSqlTypein classSFieldScalar- Returns:
- int constant from java.sql.Types, used for setting sql datatype with null values
-
-