Class EnumTypeConverter
- java.lang.Object
-
- org.eclipse.persistence.mappings.converters.ObjectTypeConverter
-
- org.eclipse.persistence.mappings.converters.EnumTypeConverter
-
- All Implemented Interfaces:
java.io.Serializable,CoreConverter<DatabaseMapping,Session>,org.eclipse.persistence.internal.descriptors.ClassNameConversionRequired,Converter
public class EnumTypeConverter extends ObjectTypeConverter
Purpose: Object type converter is used to match a fixed number of database data values to a Java enum object value. It can be used when the values on the database and in the Java differ. To create an object type converter, simply specify the set of conversion value pairs. A default value and one-way conversion are also supported for legacy data situations.- See Also:
- Serialized Form
- Author:
- Guy Pelletier
- Since:
- Toplink 10.1.4RI
-
-
Field Summary
-
Fields inherited from class org.eclipse.persistence.mappings.converters.ObjectTypeConverter
addToAttributeOnlyConversionValueStrings, attributeToFieldValues, conversionValueStrings, converterName, dataType, dataTypeName, defaultAttributeValue, defaultAttributeValueString, fieldClassification, fieldClassificationName, fieldToAttributeValues, mapping, objectType, objectTypeName
-
-
Constructor Summary
Constructors Constructor Description EnumTypeConverter(DatabaseMapping mapping, java.lang.Class enumClass, boolean useOrdinalValues)PUBLIC: Creating an enum converter this way will create the conversion values for you using ordinal or name values.EnumTypeConverter(DatabaseMapping mapping, java.lang.String enumClassName)PUBLIC: Creating an enum converter this way expects that you will provide the conversion values separately.EnumTypeConverter(DatabaseMapping mapping, java.lang.String enumClassName, boolean useOrdinalValues)PUBLIC: Creating an enum converter this way will create the conversion values for you using ordinal or name values.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidconvertClassNamesToClasses(java.lang.ClassLoader classLoader)INTERNAL: Convert all the class-name-based settings in this converter to actual class-based settings.java.lang.ObjectconvertDataValueToObjectValue(java.lang.Object fieldValue, Session session)INTERNAL: Returns the corresponding attribute value for the specified field value.java.lang.ObjectconvertObjectValueToDataValue(java.lang.Object attributeValue, Session session)INTERNAL: Convert Enum object to the data value.java.lang.ClassgetEnumClass()java.lang.StringgetEnumClassName()protected voidinitializeConversions(java.lang.Class enumClass)-
Methods inherited from class org.eclipse.persistence.mappings.converters.ObjectTypeConverter
addConversionValue, addConversionValueStrings, addToAttributeOnlyConversionValue, addToAttributeOnlyConversionValueStrings, getAttributeToFieldValues, getDefaultAttributeValue, getFieldClassification, getFieldClassification, getFieldClassificationName, getFieldToAttributeValueAssociations, getFieldToAttributeValues, getMapping, initialize, initializeFieldClassification, isMutable, loadClass, mapBooleans, mapGenders, mapResponses, setAttributeToFieldValues, setConverterName, setDataTypeName, setDefaultAttributeValue, setDefaultAttributeValueString, setFieldClassification, setFieldClassificationName, setFieldToAttributeValueAssociations, setFieldToAttributeValues, setMapping, setObjectTypeName, throwInitObjectException
-
-
-
-
Constructor Detail
-
EnumTypeConverter
public EnumTypeConverter(DatabaseMapping mapping, java.lang.Class enumClass, boolean useOrdinalValues)
PUBLIC: Creating an enum converter this way will create the conversion values for you using ordinal or name values.
-
EnumTypeConverter
public EnumTypeConverter(DatabaseMapping mapping, java.lang.String enumClassName, boolean useOrdinalValues)
PUBLIC: Creating an enum converter this way will create the conversion values for you using ordinal or name values.
-
EnumTypeConverter
public EnumTypeConverter(DatabaseMapping mapping, java.lang.String enumClassName)
PUBLIC: Creating an enum converter this way expects that you will provide the conversion values separately.
-
-
Method Detail
-
initializeConversions
protected void initializeConversions(java.lang.Class enumClass)
-
getEnumClass
public java.lang.Class getEnumClass()
-
getEnumClassName
public java.lang.String getEnumClassName()
-
convertClassNamesToClasses
public void convertClassNamesToClasses(java.lang.ClassLoader classLoader)
INTERNAL: Convert all the class-name-based settings in this converter to actual class-based settings. This method is used when converting a project that has been built with class names to a project with classes.- Specified by:
convertClassNamesToClassesin interfaceorg.eclipse.persistence.internal.descriptors.ClassNameConversionRequired- Overrides:
convertClassNamesToClassesin classObjectTypeConverter- Parameters:
classLoader-
-
convertDataValueToObjectValue
public java.lang.Object convertDataValueToObjectValue(java.lang.Object fieldValue, Session session)INTERNAL: Returns the corresponding attribute value for the specified field value. Wraps the super method to return an Enum type from the string conversion.- Specified by:
convertDataValueToObjectValuein interfaceConverter- Specified by:
convertDataValueToObjectValuein interfaceCoreConverter<DatabaseMapping,Session>- Overrides:
convertDataValueToObjectValuein classObjectTypeConverter
-
convertObjectValueToDataValue
public java.lang.Object convertObjectValueToDataValue(java.lang.Object attributeValue, Session session)INTERNAL: Convert Enum object to the data value. Internal enums are stored as strings (names) so this method wraps the super method in that if breaks down the enum to a string name before converting it.- Specified by:
convertObjectValueToDataValuein interfaceConverter- Specified by:
convertObjectValueToDataValuein interfaceCoreConverter<DatabaseMapping,Session>- Overrides:
convertObjectValueToDataValuein classObjectTypeConverter
-
-