Package simpleorm.dataset
Class SFieldEnum<T extends Enum<T>>
java.lang.Object
simpleorm.dataset.SFieldMeta
simpleorm.dataset.SFieldScalar
simpleorm.dataset.SFieldEnum<T>
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
EnumField
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:
-
Field Summary
Fields inherited from class simpleorm.dataset.SFieldScalar
sqlDataTypeOverride, theGenerator
Fields inherited from class simpleorm.dataset.SFieldMeta
quoteName
-
Constructor Summary
ConstructorsConstructorDescriptionSFieldEnum
(SRecordMeta<?> meta, String columnName, Class<T> enumType, SFieldFlags... pvals) enumType
is the Enum type backing this field -
Method Summary
Modifier and TypeMethodDescriptionprotected Object
Internal representation of SFieldEnum is Enum.The default data type if not overriden by overrideSqlDataType.boolean
isFKeyCompatible
(SFieldScalar field) Nota : foreign key is allowed if the enum values can be stored in the database...int
queryFieldValue
(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.writeFieldValue
(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 Details
-
SFieldEnum
enumType
is the Enum type backing this field
-
-
Method Details
-
getEnumClass
-
queryFieldValue
Description copied from class:SFieldMeta
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. The first column has sqlIndex==1.- Specified by:
queryFieldValue
in classSFieldMeta
- Throws:
Exception
-
convertToDataSetFieldType
Internal representation of SFieldEnum is Enum.- Specified by:
convertToDataSetFieldType
in classSFieldMeta
-
defaultSqlDataType
Description copied from class:SFieldScalar
The 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:
defaultSqlDataType
in classSFieldScalar
-
isFKeyCompatible
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
Description copied from class:SFieldMeta
Converts 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:
writeFieldValue
in classSFieldMeta
-
javaSqlType
public int javaSqlType()- Specified by:
javaSqlType
in classSFieldScalar
- Returns:
- int constant from java.sql.Types, used for setting sql datatype with null values
-