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
     
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • 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
    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
    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
    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
    convert object to Integer.
    static String
    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
     

    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.