Package org.eclipse.birt.core.data

# Class DataTypeUtil

java.lang.Object
org.eclipse.birt.core.data.DataTypeUtil

public final class DataTypeUtil extends Object
A utility function The convert method converts the source object, which can be any supported data type, into an object given specified type. If no reasonable conversion can be made, throw a BirtException.

## Field Summary

Fields
Modifier and Type
Field
Description
`static long`
`count`
`static ResourceBundle`
`resourceBundle`

## Constructor Summary

Constructors
Constructor
Description
`DataTypeUtil()`

## Method Summary

Modifier and Type
Method
Description
`static Object`
`convert(Object source, int toType)`
convert an object to given type Types supported: DataType.INTEGER_TYPE DataType.DECIMAL_TYPE DataType.BOOLEAN_TYPE DataType.DATE_TYPE DataType.DOUBLE_TYPE DataType.STRING_TYPE DataType.BLOB_TYPE DataType.SQL_DATE_TYPE DataType.SQL_TIME_TYPE
`static Object`
`convert(Object source, Class toTypeClass)`
convert a object to given class Classes supported: Integer.class BigDecimal.class Boolean.class Time.class Date.class Double.class String.class Blob.class
`static Class`
`fromApiDataTypeToJavaClass(int apiDataType)`
`static String`
`getDateFormat(String source)`
Find the date format pattern string for a given datetime string without specified locale.
`static com.ibm.icu.text.DateFormat`
`getDateFormat(String source, com.ibm.icu.util.ULocale locale, com.ibm.icu.util.TimeZone timeZone)`
Deprecated.
use getDateFormatObject instead
`static com.ibm.icu.text.DateFormat`
`getDateFormatObject(String source, com.ibm.icu.util.ULocale locale, com.ibm.icu.util.TimeZone timeZone)`
Retrieve date format object that matches the given date/time string
`static int`
`toApiDataType(int odaDataTypeCode)`
Converts an ODA data type code to its corresponding Data Engine API data type constant defined in DataType.
`static int`
`toApiDataType(Class clazz)`
Converts a Java class to its corresponding data type constant defined in DataType
`static Object`
`toAutoValue(Object evaValue)`
Convert object to a suitable type from its value Object -> Integer -> Double -> BigDecimal -> Date -> String
`static BigDecimal`
`toBigDecimal(Object source)`
Boolean -> BigDecimal true -> 1 others -> 0 Date -> BigDecimal Date.getTime(); String -> BigDecimal new BigDecimal(String);
`static Blob`
`toBlob(Object source)`
Converting Blob to/from other types is not currently supported
`static Boolean`
`toBoolean(Object source)`
Number -> Boolean 0 -> false others -> true String -> Boolean "true" -> true (ignore case) "false" -> false (ignore case) other string will throw an exception Date -> Boolean throw exception
`static byte[]`
`toBytes(Object source)`
`static Date`
`toDate(Object source)`
Number -> Date new Date((long)Number) String -> Date toDate(String)
`static Date`
`toDate(String source, com.ibm.icu.util.TimeZone timeZone)`
Convert a string to a Date instance according to the TimeZone value
`static Date`
`toDate(String source, com.ibm.icu.util.ULocale locale)`
convert String with the specified locale to java.util.Date
`static Date`
`toDate(String source, com.ibm.icu.util.ULocale locale, com.ibm.icu.util.TimeZone timeZone)`
Parses a date/time string
`static Date`
`toDate(String source, Locale locale)`
A temp solution to the adoption of ICU4J to BIRT.
`static Date`
`toDateWithCheck(String source, com.ibm.icu.util.ULocale locale)`
Convert string to date with check.
`static Date`
`toDateWithCheck(String source, Locale locale)`
A temp solution to the adoption of ICU4J in BIRT.
`static Double`
`toDouble(Object source)`
Boolean -> Double true -> 1 others -> 0 Date -> Double Date.getTime(); String -> Double Double.valueOf(String);
`static Double`
`toDouble(Object source, com.ibm.icu.util.ULocale locale)`
`static Double`
`toDouble(Object source, Locale locale)`
`static Integer`
`toInteger(Object source)`
Boolean -> Integer true -> 1 others -> 0 Date -> Integer Date.getTime(); String -> Integer Integer.valueOf();
`static Integer`
`toInteger(Object source, com.ibm.icu.util.ULocale locale)`
Boolean -> Integer true -> 1 others -> 0 Date -> Integer Date.getTime(); String -> Integer Integer.valueOf();
`static Integer`
`toIntegerValue(Object evaValue)`
convert object to Integer.
`static String`
`toLocaleNeutralString(Object source)`
Convert an object to an locale neutral String value.
`static String`
`toLocaleNeutralString(Object source, com.ibm.icu.util.TimeZone zone)`
Convert an object to an locale neutral String value.
`static int`
`toOdaDataType(Class odiTypeClass)`
Converts an ODI type class to its corresponding ODA data type code.
`static Class`
`toOdiTypeClass(int odaDataTypeCode)`
Converts an ODA data type code to the Java class of its corresponding Data Engine ODI data type.
`static Date`
`toSqlDate(Object source)`
Date -> Time String -> Time
`static Time`
`toSqlTime(Object source)`
Date -> Time String -> Time
`static String`
`toString(Object source)`
Number -> String Number.toString() Boolean -> String Boolean.toString() Date -> String toString(Date)
`static String`
`toString(Object source, com.ibm.icu.util.ULocale locale)`
Number -> String Number.toString() Boolean -> String Boolean.toString() Date -> String toString(Date,locale)
`static String`
`toString(Object source, Locale locale)`
A temp solution to the adoption of ICU4J.
`static Timestamp`
`toTimestamp(Object source)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### resourceBundle

public static ResourceBundle resourceBundle

### count

public static long count

## Constructor Details

### DataTypeUtil

public DataTypeUtil()

## Method Details

### convert

public static Object convert(Object source, int toType) throws BirtException
convert an object to given type Types supported: DataType.INTEGER_TYPE DataType.DECIMAL_TYPE DataType.BOOLEAN_TYPE DataType.DATE_TYPE DataType.DOUBLE_TYPE DataType.STRING_TYPE DataType.BLOB_TYPE DataType.SQL_DATE_TYPE DataType.SQL_TIME_TYPE

Parameters:
  `source` -
  `toType` -
Returns:
Throws:
  `BirtException`

### convert

public static Object convert(Object source, Class toTypeClass) throws BirtException
convert a object to given class Classes supported: Integer.class BigDecimal.class Boolean.class Time.class Date.class Double.class String.class Blob.class

Parameters:
  `source` -
  `toTypeClass` -
Returns:
Throws:
  `BirtException`

### toInteger

public static Integer toInteger(Object source) throws BirtException
Boolean -> Integer true -> 1 others -> 0 Date -> Integer Date.getTime(); String -> Integer Integer.valueOf();

Parameters:
  `source` -
Returns:
Throws:
  `BirtException`

### toInteger

public static Integer toInteger(Object source, com.ibm.icu.util.ULocale locale) throws BirtException
Boolean -> Integer true -> 1 others -> 0 Date -> Integer Date.getTime(); String -> Integer Integer.valueOf();

Parameters:
  `source` -
  `locale` - Locale
Returns:
Throws:
  `BirtException`

### toBigDecimal

public static BigDecimal toBigDecimal(Object source) throws BirtException
Boolean -> BigDecimal true -> 1 others -> 0 Date -> BigDecimal Date.getTime(); String -> BigDecimal new BigDecimal(String);

Parameters:
  `source` -
Returns:
Throws:
  `BirtException`

### toBoolean

public static Boolean toBoolean(Object source) throws BirtException
Number -> Boolean 0 -> false others -> true String -> Boolean "true" -> true (ignore case) "false" -> false (ignore case) other string will throw an exception Date -> Boolean throw exception

Parameters:
  `source` -
Returns:
Throws:
  `BirtException`

### toDate

public static Date toDate(Object source) throws BirtException
Number -> Date new Date((long)Number) String -> Date toDate(String)

Parameters:
  `source` -
Returns:
Throws:
  `BirtException`

### toTimestamp

public static Timestamp toTimestamp(Object source) throws BirtException

Parameters:
  `source` -
Returns:
Throws:
  `BirtException`

### toSqlTime

public static Time toSqlTime(Object source) throws BirtException
Date -> Time String -> Time

Parameters:
  `source` -
Returns:
Throws:
  `BirtException`

### toSqlDate

public static Date toSqlDate(Object source) throws BirtException
Date -> Time String -> Time

Parameters:
  `source` -
Returns:
Throws:
  `BirtException`

### toDate

public static Date toDate(String source, Locale locale) throws BirtException
A temp solution to the adoption of ICU4J to BIRT. Simply delegate toDate( String, Locale) method.

Parameters:
  `source` - the String to be convert
  `locate` - the locate of the string
Returns:
  result Date
Throws:
  `BirtException`

### toDate

public static Date toDate(String source, com.ibm.icu.util.ULocale locale) throws BirtException
convert String with the specified locale to java.util.Date

Parameters:
  `source` - the String to be convert
  `locate` - the locate of the string
Returns:
  result Date
Throws:
  `BirtException`

### toDate

public static Date toDate(String source, com.ibm.icu.util.ULocale locale, com.ibm.icu.util.TimeZone timeZone) throws BirtException
Parses a date/time string

Parameters:
  `source` -
  `locale` -
  `timeZone` -
Returns:
Throws:
  `BirtException`

### getDateFormat

@Deprecated public static com.ibm.icu.text.DateFormat getDateFormat(String source, com.ibm.icu.util.ULocale locale, com.ibm.icu.util.TimeZone timeZone) throws BirtException
Deprecated.
use getDateFormatObject instead

Throws:
  `BirtException`

### getDateFormatObject

public static com.ibm.icu.text.DateFormat getDateFormatObject(String source, com.ibm.icu.util.ULocale locale, com.ibm.icu.util.TimeZone timeZone) throws BirtException
Retrieve date format object that matches the given date/time string

Parameters:
  `source` -
  `locale` -
  `timeZone` -
Returns:
Throws:
  `BirtException`
Since:
  4.8

### toDate

public static Date toDate(String source, com.ibm.icu.util.TimeZone timeZone) throws BirtException
Convert a string to a Date instance according to the TimeZone value

Parameters:
  `source` -
  `timeZone` -
Returns:
Throws:
  `BirtException`

### toDateWithCheck

public static Date toDateWithCheck(String source, Locale locale) throws BirtException
A temp solution to the adoption of ICU4J in BIRT. It is a simple delegation to toDateWithCheck( String, Locale ).

Parameters:
  `source` -
  `locale` -
Returns:
  Date
Throws:
  `BirtException`

### toDateWithCheck

public static Date toDateWithCheck(String source, com.ibm.icu.util.ULocale locale) throws BirtException
Convert string to date with check. JDK may do incorrect converse, for example: 2005/1/1 Local.US, format pattern is MM/dd/YY. Above conversion can be done without error, but obviously the result is not right. This method will do such a simple check, in DateFormat.SHORT case instead of all cases. Year is not lower than 0. Month is from 1 to 12. Day is from 1 to 31.

Parameters:
  `source` -
  `locale` -
Returns:
  Date
Throws:
  `BirtException`

### toDouble

public static Double toDouble(Object source, Locale locale) throws CoreException

Throws:
  `CoreException`

### toDouble

public static Double toDouble(Object source, com.ibm.icu.util.ULocale locale) throws CoreException

Throws:
  `CoreException`

### toDouble

public static Double toDouble(Object source) throws BirtException
Boolean -> Double true -> 1 others -> 0 Date -> Double Date.getTime(); String -> Double Double.valueOf(String);

Parameters:
  `source` -
Returns:
Throws:
  `BirtException`

### toString

public static String toString(Object source) throws BirtException
Number -> String Number.toString() Boolean -> String Boolean.toString() Date -> String toString(Date)

Parameters:
  `source` -
Returns:
Throws:
  `BirtException`

### toString

public static String toString(Object source, Locale locale) throws BirtException
A temp solution to the adoption of ICU4J. It is a simple delegation to toString( Object, Locale ).

Parameters:
  `source` -
Returns:
Throws:
  `BirtException`

### toLocaleNeutralString

public static String toLocaleNeutralString(Object source, com.ibm.icu.util.TimeZone zone) throws BirtException
Convert an object to an locale neutral String value. For Date values we will convert to ISO8601 format. User can specify the time zone to output.

Parameters:
  `source` -
  `zone` -
Returns:
Throws:
  `BirtException`

### toLocaleNeutralString

public static String toLocaleNeutralString(Object source) throws BirtException
Convert an object to an locale neutral String value. For Date values we will convert to ISO8601 format. This will always output default(current) time zone.

Parameters:
  `source` -
Returns:
Throws:
  `BirtException`

### toString

public static String toString(Object source, com.ibm.icu.util.ULocale locale) throws BirtException
Number -> String Number.toString() Boolean -> String Boolean.toString() Date -> String toString(Date,locale)

Parameters:
  `source` -
Returns:
Throws:
  `BirtException`

### toBlob

public static Blob toBlob(Object source) throws BirtException
Converting Blob to/from other types is not currently supported

Parameters:
  `source` -
Returns:
Throws:
  `BirtException`

### toBytes

public static byte[] toBytes(Object source) throws BirtException

Parameters:
  `source` -
Returns:
  byte array
Throws:
  `BirtException`

### toApiDataType

public static int toApiDataType(Class clazz)
Converts a Java class to its corresponding data type constant defined in DataType

### fromApiDataTypeToJavaClass

public static Class fromApiDataTypeToJavaClass(int apiDataType)

### toApiDataType

public static int toApiDataType(int odaDataTypeCode) throws BirtException
Converts an ODA data type code to its corresponding Data Engine API data type constant defined in DataType.

Parameters:
  `odaDataTypeCode` - an ODA data type code
Throws:
  `BirtException` - if the specified ODA data type code is not a supported type

### toAutoValue

public static Object toAutoValue(Object evaValue)
Convert object to a suitable type from its value Object -> Integer -> Double -> BigDecimal -> Date -> String

### toIntegerValue

public static Integer toIntegerValue(Object evaValue)
convert object to Integer. If fails, return null. Object -> Integer

### getDateFormat

public static String getDateFormat(String source) throws BirtException
Find the date format pattern string for a given datetime string without specified locale. If a suitable date format cannot be found or the pattern string cannot be retrieved, returns null

Parameters:
  `source` -
Returns:
Throws:
  `BirtException`
Since:
  4.8

### toOdiTypeClass

public static Class toOdiTypeClass(int odaDataTypeCode) throws BirtException
Converts an ODA data type code to the Java class of its corresponding Data Engine ODI data type.
ODA Data Type -> ODI Type Class
Integer -> java.lang.Integer
Double -> java.lang.Double
Character -> java.lang.String
Decimal -> java.math.BigDecimal
Date -> java.sql.Date
Time -> java.sql.Time
Timestamp -> java.sql.Timestamp
Blob -> java.sql.Blob
Clob -> java.sql.Clob
Boolean -> java.lang.Boolean
JavaObject -> java.lang.Object

Parameters:
  `odaDataTypeCode` - an ODA data type code
Returns:
  the ODI type class that corresponds with the specified ODA data type
Throws:
  `BirtException` - if the specified ODA data type is not a supported type

### toOdaDataType

public static int toOdaDataType(Class odiTypeClass)
Converts an ODI type class to its corresponding ODA data type code.
ODI Type Class -> ODA Data Type
java.lang.Integer -> Integer
java.lang.Double -> Double
java.lang.String -> Character
java.math.BigDecimal -> Decimal
java.util.Date -> Timestamp
java.sql.Date -> Date
java.sql.Time -> Time
java.sql.Timestamp -> Timestamp
java.sql.Blob -> Blob
java.sql.Clob -> Clob
java.lang.Boolean -> Boolean
java.lang.Object -> JavaObject
All other type classes are mapped to the ODA String data type.

Parameters:
  `odiTypeClass` - a type class used by the Data Engine ODI component
Returns:
  the ODA data type that maps to the ODI type class.