Class XMLConversionManager
- java.lang.Object
-
- org.eclipse.persistence.internal.core.helper.CoreConversionManager
-
- org.eclipse.persistence.internal.helper.ConversionManager
-
- org.eclipse.persistence.internal.oxm.XMLConversionManager
-
- All Implemented Interfaces:
Serializable
,Cloneable
,TimeZoneHolder
,ConversionManager
public class XMLConversionManager extends ConversionManager implements ConversionManager, TimeZoneHolder
INTERNAL:Purpose: Primarily used to convert objects from a given XML Schema type to a different type in Java. Uses a singleton instance
- Since:
- OracleAS TopLink 10g
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected DatatypeFactory
datatypeFactory
protected static HashMap
defaultJavaTypes
protected static XMLConversionManager
defaultXMLManager
protected static HashMap
defaultXMLTypes
protected static String
GMT_ID
protected static String
GMT_SUFFIX
protected TimeZone
timeZone
protected boolean
timeZoneQualified
protected static int
TOTAL_MS_DIGITS
protected static int
TOTAL_NS_DIGITS
-
Fields inherited from class org.eclipse.persistence.internal.helper.ConversionManager
dataTypesConvertedFromAClass, dataTypesConvertedToAClass, defaultManager, defaultNullValues, loader, shouldUseClassLoaderFromCurrentThread
-
-
Constructor Summary
Constructors Constructor Description XMLConversionManager()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description String
buildBase64StringFromBytes(byte[] bytes)
String
buildBase64StringFromObjectBytes(Byte[] bytes)
protected String
buildHexStringFromObjectBytes(Byte[] bytes)
QName
buildQNameFromString(String stringValue, AbstractUnmarshalRecord record)
Object
clone()
INTERNAL:String
collapseStringValue(String value)
Removes all leading and trailing whitespaces, and replaces any sequences of whitespaces that occur in the string with a single ' ' character.String
convertArrayToString(Object[] sourceObject, QName schemaType)
Object
convertHexBinaryListToByteArrayList(Object sourceObject, CoreContainerPolicy containerPolicy, CoreAbstractSession session)
String
convertListToString(Object sourceObject, QName schemaType)
Object
convertObject(Object sourceObject, Class javaClass)
Convert the given object to the appropriate type by invoking the appropriate ConversionManager method.Object
convertObject(Object sourceObject, Class javaClass, QName schemaTypeQName)
Convert the given object to the appropriate type by invoking the appropriate ConversionManager method.protected BigDecimal
convertObjectToBigDecimal(Object sourceObject)
Build a valid instance of BigDecimal from the given sourceObjectprotected BigInteger
convertObjectToBigInteger(Object sourceObject)
Build a valid instance of BigInteger from the provided sourceObject.protected Boolean
convertObjectToBoolean(Object sourceObject)
Build a valid instance of Boolean from the source object.protected Byte
convertObjectToByte(Object sourceObject)
Build a valid instance of Byte from the provided sourceObjectprotected Calendar
convertObjectToCalendar(Object sourceObject)
INTERNAL: Converts given object to a Calendar objectprotected Character
convertObjectToChar(Object sourceObject)
Build a valid instance of Character from the provided sourceObject.protected Character
convertObjectToChar(Object sourceObject, QName schemaTypeQName)
Build a valid instance of Character from the provided sourceObject.protected Date
convertObjectToDate(Object sourceObject)
Convert the object to an instance of java.sql.Date.protected Double
convertObjectToDouble(Object sourceObject)
Convert the object to an instance of Double.protected Duration
convertObjectToDuration(Object sourceObject)
Build a valid instance of Duration from the provided sourceObject.protected Float
convertObjectToFloat(Object sourceObject)
Build a valid Float instance from a String or another Number instance.protected Integer
convertObjectToInteger(Object sourceObject)
Build a valid Integer instance from a String or another Number instance.protected Long
convertObjectToLong(Object sourceObject)
Build a valid Long instance from a String or another Number instance.protected BigDecimal
convertObjectToNumber(Object sourceObject)
INTERNAL: Build a valid BigDecimal instance from a String or another Number instance.protected QName
convertObjectToQName(Object sourceObject)
INTERNAL: Converts given object to a QName objectprotected Short
convertObjectToShort(Object sourceObject)
INTERNAL: Build a valid Short instance from a String or another Number instance.protected Date
convertObjectToSQLDate(Object sourceObject, QName schemaTypeQName)
protected Time
convertObjectToSQLTime(Object sourceObject, QName schemaTypeQName)
protected String
convertObjectToString(Object sourceObject)
INTERNAL: Converts objects to their string representations.protected String
convertObjectToString(Object sourceObject, QName schemaTypeQName)
protected Timestamp
convertObjectToTimestamp(Object sourceObject, QName schemaTypeQName)
protected URI
convertObjectToURI(Object sourceObject)
Convert a String to a URI.protected XMLGregorianCalendar
convertObjectToXMLGregorianCalendar(Object sourceObject)
Build a valid instance of XMLGregorianCalendar from the provided sourceObject.protected XMLGregorianCalendar
convertObjectToXMLGregorianCalendar(Object sourceObject, QName schemaTypeQName)
Build a valid instance of XMLGregorianCalendar from the provided sourceObject.Object
convertSchemaBase64ListToByteArrayList(Object sourceObject, CoreContainerPolicy containerPolicy, CoreAbstractSession session)
byte[]
convertSchemaBase64ToByteArray(Object sourceObject)
INTERNAL: Converts a String which is in Base64 format to a Byte[]protected Byte[]
convertSchemaBase64ToByteObjectArray(Object sourceObject)
Calendar
convertStringToCalendar(String sourceString, QName schemaTypeQName)
Date
convertStringToDate(String sourceString, QName schemaType)
Duration
convertStringToDuration(String sourceString)
Return a Duration created with a given date string.protected File
convertStringToFile(String path)
protected List
convertStringToList(Object sourceObject)
Object
convertStringToList(Object sourceObject, Class elementType, ContainerPolicy containerPolicy, QName schemaType)
Convert the given sourceObject (String) to the appropriate collection type specified by the containerPolicy, using the elementType to properly convert each element of the list.protected Timestamp
convertStringToTimestamp(String sourceObject)
Timestamp
convertStringToTimestamp(String sourceString, QName schemaType)
XMLGregorianCalendar
convertStringToXMLGregorianCalendar(String sourceString)
Return an XMLGregorianCalander created with a given date stringXMLGregorianCalendar
convertStringToXMLGregorianCalendar(String sourceString, QName schemaTypeQName)
protected DatatypeFactory
getDatatypeFactory()
INTERNAL: Return the DatatypeFactory instance.static HashMap
getDefaultJavaTypes()
static XMLConversionManager
getDefaultXMLManager()
static HashMap
getDefaultXMLTypes()
TimeZone
getTimeZone()
Return the specified TimeZone used for all String to date object conversions.boolean
isTimeZoneQualified()
Class<?>
javaType(QName schemaType)
String
normalizeStringValue(String value)
Replaces any CR, Tab or LF characters in the string with a single ' ' character.QName
schemaType(Class<?> javaType)
void
setTimeZone(TimeZone timeZone)
The specified TimeZone will be used for all String to date object conversions.void
setTimeZoneQualified(boolean timeZoneQualified)
Specify if Specify if when date objects are converted to Strings in the XML Schema time or dateTime formatString
stringFromCalendar(Calendar sourceCalendar, QName schemaTypeQName)
String
stringFromDate(Date sourceDate, QName schemaType)
This method returns a string representing a given java.util.Date based on a given schema type QName.-
Methods inherited from class org.eclipse.persistence.internal.helper.ConversionManager
buildAllTypesToAClassVec, buildDataTypesConvertedFromAClass, buildDataTypesConvertedToAClass, buildDateTimeVec, buildFromBigDecimalVec, buildFromBigIntegerVec, buildFromBlobVec, buildFromBooleanVec, buildFromByteArrayVec, buildFromByteObjectArraryVec, buildFromByteVec, buildFromCalendarVec, buildFromCharacterArrayVec, buildFromCharacterVec, buildFromCharArrayVec, buildFromClobVec, buildFromDateVec, buildFromDoubleVec, buildFromFloatVec, buildFromIntegerVec, buildFromLongVec, buildFromNumberVec, buildFromShortVec, buildFromStringVec, buildFromTimestampVec, buildFromTimeVec, buildFromUtilDateVec, buildNumberVec, buildToBigDecimalVec, buildToBigIntegerVec, buildToBlobVec, buildToBooleanVec, buildToByteArrayVec, buildToByteObjectArrayVec, buildToByteVec, buildToCalendarVec, buildToCharacterArrayVec, buildToCharacterVec, buildToCharArrayVec, buildToClobVec, buildToDateVec, buildToDoubleVec, buildToFloatVec, buildToIntegerVec, buildToLongVec, buildToNumberVec, buildToShortVec, buildToStringVec, buildToTimestampVec, buildToTimeVec, buildToUtilDateVec, convertClassNameToClass, convertObjectToByteArray, convertObjectToByteObjectArray, convertObjectToCharacterArray, convertObjectToCharArray, convertObjectToClass, convertObjectToLocalDate, convertObjectToLocalDateTime, convertObjectToLocalTime, convertObjectToOffsetDateTime, convertObjectToOffsetTime, convertObjectToTime, convertObjectToTimestamp, convertObjectToUrl, convertObjectToUtilDate, getDataTypesConvertedFrom, getDataTypesConvertedTo, getDefaultLoader, getDefaultManager, getDefaultNullValue, getDefaultNullValues, getLoader, getObjectClass, getPrimitiveClass, hasDefaultNullValues, loadClass, setDefaultLoader, setDefaultManager, setDefaultNullValue, setDefaultNullValues, setLoader, setShouldUseClassLoaderFromCurrentThread, shouldUseClassLoaderFromCurrentThread
-
-
-
-
Field Detail
-
GMT_ID
protected static final String GMT_ID
- See Also:
- Constant Field Values
-
GMT_SUFFIX
protected static final String GMT_SUFFIX
- See Also:
- Constant Field Values
-
defaultXMLManager
protected static XMLConversionManager defaultXMLManager
-
defaultXMLTypes
protected static HashMap defaultXMLTypes
-
defaultJavaTypes
protected static HashMap defaultJavaTypes
-
timeZoneQualified
protected boolean timeZoneQualified
-
timeZone
protected TimeZone timeZone
-
TOTAL_MS_DIGITS
protected static final int TOTAL_MS_DIGITS
- See Also:
- Constant Field Values
-
TOTAL_NS_DIGITS
protected static final int TOTAL_NS_DIGITS
- See Also:
- Constant Field Values
-
datatypeFactory
protected DatatypeFactory datatypeFactory
-
-
Method Detail
-
getDatatypeFactory
protected DatatypeFactory getDatatypeFactory()
INTERNAL: Return the DatatypeFactory instance.- Returns:
-
getDefaultXMLManager
public static XMLConversionManager getDefaultXMLManager()
-
getTimeZone
public TimeZone getTimeZone()
Return the specified TimeZone used for all String to date object conversions.- Specified by:
getTimeZone
in interfaceTimeZoneHolder
-
setTimeZone
public void setTimeZone(TimeZone timeZone)
The specified TimeZone will be used for all String to date object conversions. By default the TimeZone from the JVM is used.
-
isTimeZoneQualified
public boolean isTimeZoneQualified()
-
setTimeZoneQualified
public void setTimeZoneQualified(boolean timeZoneQualified)
Specify if Specify if when date objects are converted to Strings in the XML Schema time or dateTime format
-
convertObject
public Object convertObject(Object sourceObject, Class javaClass) throws ConversionException
Convert the given object to the appropriate type by invoking the appropriate ConversionManager method.- Overrides:
convertObject
in classConversionManager
- Parameters:
sourceObject
- - will always be a string if read from XMLjavaClass
- - the class that the object must be converted to- Returns:
- - the newly converted object
- Throws:
ConversionException
- all exceptions will be thrown as this type.
-
convertObject
public Object convertObject(Object sourceObject, Class javaClass, QName schemaTypeQName) throws ConversionException
Convert the given object to the appropriate type by invoking the appropriate ConversionManager method.- Specified by:
convertObject
in interfaceConversionManager
- Parameters:
sourceObject
- - will always be a string if read from XMLjavaClass
- - the class that the object must be converted toschemaTypeQName
- - the XML schema that the object is being converted from- Returns:
- - the newly converted object
- Throws:
ConversionException
-
convertObjectToXMLGregorianCalendar
protected XMLGregorianCalendar convertObjectToXMLGregorianCalendar(Object sourceObject, QName schemaTypeQName) throws ConversionException
Build a valid instance of XMLGregorianCalendar from the provided sourceObject.- Parameters:
sourceObject
-schemaTypeQName
-- Throws:
ConversionException
-
convertObjectToXMLGregorianCalendar
protected XMLGregorianCalendar convertObjectToXMLGregorianCalendar(Object sourceObject) throws ConversionException
Build a valid instance of XMLGregorianCalendar from the provided sourceObject.- Parameters:
sourceObject
-- Throws:
ConversionException
-
convertObjectToDuration
protected Duration convertObjectToDuration(Object sourceObject) throws ConversionException
Build a valid instance of Duration from the provided sourceObject.- Parameters:
sourceObject
-- Throws:
ConversionException
-
convertObjectToChar
protected Character convertObjectToChar(Object sourceObject, QName schemaTypeQName) throws ConversionException
Build a valid instance of Character from the provided sourceObject.- Parameters:
sourceObject
-- Throws:
ConversionException
-
convertObjectToChar
protected Character convertObjectToChar(Object sourceObject) throws ConversionException
Build a valid instance of Character from the provided sourceObject.- Overrides:
convertObjectToChar
in classConversionManager
- Parameters:
sourceObject
-- Throws:
ConversionException
-
convertObjectToURI
protected URI convertObjectToURI(Object sourceObject) throws ConversionException
Convert a String to a URI.- Parameters:
sourceObject
-- Returns:
- Throws:
ConversionException
-
convertObjectToQName
protected QName convertObjectToQName(Object sourceObject) throws ConversionException
INTERNAL: Converts given object to a QName object- Throws:
ConversionException
-
convertObjectToCalendar
protected Calendar convertObjectToCalendar(Object sourceObject) throws ConversionException
INTERNAL: Converts given object to a Calendar object- Overrides:
convertObjectToCalendar
in classConversionManager
- Parameters:
sourceObject
- Valid instance of java.util.Date, String, java.sql.Timestamp, or Long- Throws:
ConversionException
-
convertObjectToString
protected String convertObjectToString(Object sourceObject) throws ConversionException
INTERNAL: Converts objects to their string representations.- Overrides:
convertObjectToString
in classConversionManager
- Throws:
ConversionException
-
convertObjectToString
protected String convertObjectToString(Object sourceObject, QName schemaTypeQName) throws ConversionException
- Throws:
ConversionException
-
convertObjectToDate
protected Date convertObjectToDate(Object sourceObject) throws ConversionException
Description copied from class:ConversionManager
Convert the object to an instance of java.sql.Date.- Overrides:
convertObjectToDate
in classConversionManager
- Parameters:
sourceObject
- Object of type java.sql.Timestamp, java.util.Date, String or Long- Throws:
ConversionException
-
convertObjectToDouble
protected Double convertObjectToDouble(Object sourceObject) throws ConversionException
Convert the object to an instance of Double.- Overrides:
convertObjectToDouble
in classConversionManager
- Parameters:
sourceObject
- Object of type String or Number.- Throws:
ConversionException
- The Double(String) constructor throws a NumberFormatException if the String does not contain a parsable double.
-
convertObjectToFloat
protected Float convertObjectToFloat(Object sourceObject) throws ConversionException
Build a valid Float instance from a String or another Number instance.- Overrides:
convertObjectToFloat
in classConversionManager
- Throws:
ConversionException
- The Float(String) constructor throws a NumberFormatException if the String does not contain a parsable Float.
-
convertObjectToInteger
protected Integer convertObjectToInteger(Object sourceObject) throws ConversionException
Build a valid Integer instance from a String or another Number instance.- Overrides:
convertObjectToInteger
in classConversionManager
- Throws:
ConversionException
- The Integer(String) constructor throws a NumberFormatException if the String does not contain a parsable integer.
-
convertObjectToLong
protected Long convertObjectToLong(Object sourceObject) throws ConversionException
Build a valid Long instance from a String or another Number instance.- Overrides:
convertObjectToLong
in classConversionManager
- Throws:
ConversionException
- The Long(String) constructor throws a NumberFormatException if the String does not contain a parsable long.
-
convertObjectToShort
protected Short convertObjectToShort(Object sourceObject) throws ConversionException
INTERNAL: Build a valid Short instance from a String or another Number instance.- Overrides:
convertObjectToShort
in classConversionManager
- Throws:
ConversionException
- The Short(String) constructor throws a NumberFormatException if the String does not contain a parsable short.
-
convertObjectToNumber
protected BigDecimal convertObjectToNumber(Object sourceObject) throws ConversionException
INTERNAL: Build a valid BigDecimal instance from a String or another Number instance. BigDecimal is the most general type so is must be returned when an object is converted to a number.- Overrides:
convertObjectToNumber
in classConversionManager
- Throws:
ConversionException
- The BigDecimal(String) constructor throws a NumberFormatException if the String does not contain a parsable BigDecimal.
-
convertObjectToBigInteger
protected BigInteger convertObjectToBigInteger(Object sourceObject) throws ConversionException
Build a valid instance of BigInteger from the provided sourceObject.- Overrides:
convertObjectToBigInteger
in classConversionManager
- Parameters:
sourceObject
- Valid instance of String, BigDecimal, or any Number- Throws:
ConversionException
-
convertObjectToBigDecimal
protected BigDecimal convertObjectToBigDecimal(Object sourceObject) throws ConversionException
Build a valid instance of BigDecimal from the given sourceObject- Overrides:
convertObjectToBigDecimal
in classConversionManager
- Parameters:
sourceObject
- Valid instance of String, BigInteger, any Number- Throws:
ConversionException
-
convertObjectToBoolean
protected Boolean convertObjectToBoolean(Object sourceObject)
Description copied from class:ConversionManager
Build a valid instance of Boolean from the source object. 't', 'T', "true", "TRUE", 1,'1' -> Boolean(true) 'f', 'F', "false", "FALSE", 0 ,'0' -> Boolean(false)- Overrides:
convertObjectToBoolean
in classConversionManager
-
convertObjectToByte
protected Byte convertObjectToByte(Object sourceObject) throws ConversionException
Build a valid instance of Byte from the provided sourceObject- Overrides:
convertObjectToByte
in classConversionManager
- Parameters:
sourceObject
- Valid instance of String or any Number- Throws:
ConversionException
- The Byte(String) constructor throws a NumberFormatException if the String does not contain a parsable byte.
-
convertStringToXMLGregorianCalendar
public XMLGregorianCalendar convertStringToXMLGregorianCalendar(String sourceString, QName schemaTypeQName)
-
convertStringToXMLGregorianCalendar
public XMLGregorianCalendar convertStringToXMLGregorianCalendar(String sourceString)
Return an XMLGregorianCalander created with a given date string- Parameters:
sourceString
-- Returns:
-
convertStringToDuration
public Duration convertStringToDuration(String sourceString)
Return a Duration created with a given date string.- Parameters:
sourceString
-- Returns:
-
convertStringToCalendar
public Calendar convertStringToCalendar(String sourceString, QName schemaTypeQName)
-
convertObjectToSQLDate
protected Date convertObjectToSQLDate(Object sourceObject, QName schemaTypeQName)
-
convertObjectToSQLTime
protected Time convertObjectToSQLTime(Object sourceObject, QName schemaTypeQName)
-
convertObjectToTimestamp
protected Timestamp convertObjectToTimestamp(Object sourceObject, QName schemaTypeQName)
-
convertStringToTimestamp
public Timestamp convertStringToTimestamp(String sourceString, QName schemaType)
-
stringFromCalendar
public String stringFromCalendar(Calendar sourceCalendar, QName schemaTypeQName)
-
stringFromDate
public String stringFromDate(Date sourceDate, QName schemaType)
This method returns a string representing a given java.util.Date based on a given schema type QName. BC dates (sourceDate.getTime() < YEAR_ONE_AD_TIME) are handled as follows: '2007 BC' --> '-2006 AD'.- Parameters:
sourceDate
-schemaType
-- Returns:
-
convertSchemaBase64ToByteArray
public byte[] convertSchemaBase64ToByteArray(Object sourceObject) throws ConversionException
INTERNAL: Converts a String which is in Base64 format to a Byte[]- Specified by:
convertSchemaBase64ToByteArray
in interfaceConversionManager
- Throws:
ConversionException
-
convertSchemaBase64ListToByteArrayList
public Object convertSchemaBase64ListToByteArrayList(Object sourceObject, CoreContainerPolicy containerPolicy, CoreAbstractSession session) throws ConversionException
- Specified by:
convertSchemaBase64ListToByteArrayList
in interfaceConversionManager
- Throws:
ConversionException
-
convertSchemaBase64ToByteObjectArray
protected Byte[] convertSchemaBase64ToByteObjectArray(Object sourceObject) throws ConversionException
- Throws:
ConversionException
-
buildBase64StringFromBytes
public String buildBase64StringFromBytes(byte[] bytes)
- Specified by:
buildBase64StringFromBytes
in interfaceConversionManager
-
convertStringToList
protected List convertStringToList(Object sourceObject) throws ConversionException
- Throws:
ConversionException
-
convertStringToList
public Object convertStringToList(Object sourceObject, Class elementType, ContainerPolicy containerPolicy, QName schemaType) throws ConversionException
Convert the given sourceObject (String) to the appropriate collection type specified by the containerPolicy, using the elementType to properly convert each element of the list.- Parameters:
sourceObject
- - will always be a string if read from XMLelementType
- - the type of the elements contained in the list- Returns:
- - the newly converted object
- Throws:
ConversionException
-
convertListToString
public String convertListToString(Object sourceObject, QName schemaType) throws ConversionException
- Throws:
ConversionException
-
convertArrayToString
public String convertArrayToString(Object[] sourceObject, QName schemaType) throws ConversionException
- Throws:
ConversionException
-
getDefaultXMLTypes
public static HashMap getDefaultXMLTypes()
-
getDefaultJavaTypes
public static HashMap getDefaultJavaTypes()
-
clone
public Object clone()
INTERNAL:- Overrides:
clone
in classConversionManager
-
buildQNameFromString
public QName buildQNameFromString(String stringValue, AbstractUnmarshalRecord record)
- Specified by:
buildQNameFromString
in interfaceConversionManager
-
normalizeStringValue
public String normalizeStringValue(String value)
Replaces any CR, Tab or LF characters in the string with a single ' ' character.- Specified by:
normalizeStringValue
in interfaceConversionManager
-
collapseStringValue
public String collapseStringValue(String value)
Removes all leading and trailing whitespaces, and replaces any sequences of whitespaces that occur in the string with a single ' ' character.- Specified by:
collapseStringValue
in interfaceConversionManager
-
javaType
public Class<?> javaType(QName schemaType)
- Specified by:
javaType
in interfaceConversionManager
- Parameters:
schemaType
- The type you want to find a corresponding Java class for.- Returns:
- the Java class for the XML schema type.
- Since:
- EclipseLink 2.6.0
-
schemaType
public QName schemaType(Class<?> javaType)
- Specified by:
schemaType
in interfaceConversionManager
- Parameters:
javaType
- The type you want to find a corresponding schema type for.- Returns:
- the schema type for the Java class.
- Since:
- EclipseLink 2.6.0
-
convertHexBinaryListToByteArrayList
public Object convertHexBinaryListToByteArrayList(Object sourceObject, CoreContainerPolicy containerPolicy, CoreAbstractSession session)
- Specified by:
convertHexBinaryListToByteArrayList
in interfaceConversionManager
-
-