Package com.iizix

Class Value

java.lang.Object
com.iizix.Value
All Implemented Interfaces:
Cloneable

public final class Value extends Object implements Cloneable
This is the base class for all data values that are stored in VirtualSpace.

Note:

Please note that conversion of a Value and a VSField is done in different manners. The VSField can use its Field Actors to perform a conversion that is more accurate than the conversion using the Value methods toNnnn(), e.g. to convert an Integer into a String that could be "green", "red" or "blue", and vice-versa.

The Value class also provides additional conversion routines to Java Date, SQL Date/Time/Timestamp and GregorianCalendar.

This class is immutable and thread-safe.

The data value types are closely related the JDBC and XML data types as follows:

Conversion from SQL or Java to IIZI

  SQL Type                    Java type             Type
  --------------------------  --------------------  ------------------
  CHAR                        String                String
  VARCHAR                     String                String
  LONGVARCHAR                 String                String
  NUMERIC                     java.math.BigDecimal  Decimal
  DECIMAL                     java.math.BigDecimal  Decimal
  BIT                         Boolean               Boolean
  TINYINT                     Byte                  Byte
  SMALLINT                    Short                 Short
  INTEGER                     Integer               Integer
  BIGINT                      Long                  Long
  REAL                        Float                 Float
  FLOAT                       Double                Double
  DOUBLE                      Double                Double
  BINARY                      byte[]                Binary
  VARBINARY                   byte[]                Binary
  LONGVARBINARY               byte[]                Binary
  DATE                        LocalDate             LocalDate
  TIME                        LocalTime             LocaleTime
  TIME WITH TIMEZONE          OffsetTime            OffsetTime
  TIMESTAMP                   LocalDateTime         LocalDateTime
  TIMESTAMP WITH TIMEZONE     OffsetDateTime        OffsetDateTime
 

Conversion from IIZI to Java or SQL

  Type              Java Type             SQL type
  ----------------  --------------------  --------------------------
  String            String                VARCHAR or LONGVARCHAR
  Decimal           java.math.BigDecimal  NUMERIC
  Boolean           Boolean               BIT
  Byte              Byte                  TINYINT
  Short             Short                 SMALLINT
  Integer           Integer               INTEGER
  Long              Long                  BIGINT
  Float             Float                 REAL
  Double            Double                DOUBLE
  Binary            byte[]                VARBINARY or LONGVARBINARY
  LocalDate         LocalDate             DATE
  LocalTime         LocalTime             TIME
  OffsetTime        OffsetTime            TIME (in the system time zone)
  LocalDateTime     LocalDateTime         TIMESTAMP
  OffsetDateTime    OffsetDateTime        TIMESTAMP WITH TIMEZONE or TIMESTAMP (in system time zone)
  ZonedDateTime     ZonedDateTime         TIMESTAMP WITH TIMEZONE or TIMESTAMP (in system time zone)
 

This implementation allows display of the calendars Thai Buddhist, Japanese Imperial (Meiji, Taisho, Showa, Heisei).

Author:
Christopher Mindus
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
    The enumeration of Categories.
    static enum 
    The enumeration of Types.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    The type of this value.
    final Object
    The Object of the value in its native format.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Value(boolean value)
    Constructs a Boolean value.
    Value(byte value)
    Constructs a Byte value.
    Value(byte[] value)
    Constructs a Binary value.
    Value(double value)
    Constructs a Double value.
    Value(float value)
    Constructs a Float value.
    Value(int value)
    Constructs a Integer value.
    Value(long value)
    Constructs a Long value.
    Value(short value)
    Constructs a Short value.
    Value(KString value)
    Constructs a KString value.
    Constructs an ImmutableXMLGregorianCalendar value.
    Value(Boolean value)
    Constructs a Boolean value.
    Value(Byte value)
    Constructs a Byte value.
    Value(Double value)
    Constructs a Double value.
    Value(Float value)
    Constructs a Float value.
    Value(Integer value)
    Constructs a Integer value.
    Value(Long value)
    Constructs a Long value.
    Value(Object value)
    Constructs a Value object from the Java native representation.
    Value(Short value)
    Constructs a Short value.
    Value(String value)
    Constructs a String value.
    Constructs a Decimal value.
    Value(Duration value)
    Constructs a Duration value.
    Constructs a LocalDate value.
    Constructs a LocalDateTime value.
    Constructs a LocalTime value.
    Value(MonthDay value)
    Constructs a MonthDay value.
    Constructs a OffsetDateTime value.
    Constructs an OffsetTime value.
    Value(Period value)
    Constructs a Period value.
    Value(Year value)
    Constructs a Year value.
    Constructs a YearMonth value.
    Constructs a ZonedDateTime value.
    Value(Duration value)
    Constructs a value from an XML Duration.
    Creates an immutable XMLGregorianCalendar value.
    Value(Element element)
    Constructs the Value from an Element.
  • Method Summary

    Modifier and Type
    Method
    Description
    adjust(TemporalAdjuster temporalAdjuster)
    Adjusts the current temporal value with a temporal adjuster.
    Clones the value.
    convert(Value.Type targetType)
    Converts this Value from its current value type to the requested target type using the locale looked-up from current thread or if not found, for system default.
    convert(Value.Type targetType, LocaleInfo localeInfo)
    Converts this Value from its current value type to the requested target type using the specified locale information.
    void
    Disposes of the value.
    boolean
    Checks if two values are equal; the type must match as well as the value.
    boolean
    equals(Value v, boolean ignoreType)
    Checks if two values are equal; the value (optionally converted) must match.
    static boolean
    equals(Value v1, Value v2)
    Checks if two Value's are equal, also being null.
    static boolean
    equals(Value v1, Value v2, boolean ignoreType)
    Checks if two Value's are equal, also being null.
    boolean
    Checks if two values are equal; the type must match as well as the value.
    static Value
    Creates a ZonedDateTime value from a Calendar.
    static Value
    Creates a Value from an XMLGregorianCalendar depending on the datatype:
    static Value
    Creates a duration from a numeric value in milliseconds.
    static Value
    fromLocalDate(long millis)
    Constructs a LocaleDate value.
    static Value
    Constructs a LocalDate value from an SQL date.
    static Value
    Constructs a Date value.
    static Value
    fromLocalDateTime(long millis)
    Constructs LocalDateTime from milliseconds since Java epoch value.
    static Value
    Constructs a LocalDateTime from a Timestamp value.
    static Value
    fromLocalDateTime(Date dateAndTime)
    Constructs a LocalDateTime from a Date (and time) value.
    static Value
    fromLocalTime(long millis)
    Constructs a Time value.
    static Value
    Constructs a Time value.
    static Value
    Constructs a Time value.
    static Value
    getDefaultValue_StringFallback(Value.Type type, boolean isNullAllowed)
    Safely gets a shared instance of a null or default Value of the specified type depending on the isNullAllowed flag.
    int
    Get the scale of this value.
    int
    Gets the default SQL type for this Value type.
    static String
    getSQLTypeName(int sqlType)
    Returns the String of the given SQL Types value.
    static String
    getString(Object value, Value.Type type, String pattern, LocaleInfo localeInfo)
    Gets the value as a String with the specified pattern formatter string.
    getString(String pattern, LocaleInfo localeInfo)
    Gets the value as a String with the specified pattern formatter string.
    static Value.Type
    Returns the Value Type from a given type string.
    Gets the type string.
    static Value.Type
    Guesses the type value for a Value class.
    Gets the XML datatype factory.
    static Value.Type
    Guesses the value type from a String in the following order: Long, Double, BigDecimal, ZonedDateTime, OffsetDateTime, LocalDateTime, OffsetTime, LocalTime, LocalDate, Period, Duration, MonthDay, YearMonth, Boolean.
    int
    Hash code.
    void
    Initializes an XML element from this value.
    boolean
    Checks if the value is NULL.
    static boolean
    Checks if a fully qualified name is valid as type.
    static Value
    ofSQLType(Object value, int sqlType)
    Tries to create a Value instance with a type forced to the default SQL Type mapping.
    static Value
    ofType(Object value, Value.Type targetType, LocaleInfo localeInfo)
    Tries to create a Value instance forced to the specified type.
    static Value
    parseValue(String value, Value.Type type, String pattern, LocaleInfo localeInfo)
    Creates a Value object from a String using a specified pattern and locale.
    Converts this Value and returns it as a BigDecimal using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as a BigInteger using the locale looked-up from current thread or if not found, for system default.
    byte[]
    Converts this Value and returns it as a Binary byte [] using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as a Boolean using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as a Byte using the locale looked-up from current thread or if not found, for system default.
    Converts all date/time formats into java.util.Date.
    Converts this Value and returns it as a Double using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as a Duration using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as a Float using the locale looked-up from current thread or if not found, for system default.
    Converts all date/time formats into GregorianCalendar.
    Converts this Value and returns it as an Integer using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as a KString using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as a LocalDate using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as a LocalDateTime using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as a LocalDateTime using the locale information specified.
    Converts this Value and returns it as a LocalTime using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as a Long using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as a MonthDay using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as an OffsetDateTime using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as an OffsetDateTime using the locale information specified.
    Converts this Value and returns it as an OffsetTime using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as an OffsetTime using the locale information specified.
    Converts this Value and returns it as a Period using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as a Short using the locale looked-up from current thread or if not found, for system default.
    Converts all date/time formats into java.sql.Date.
    Converts all date/time formats into java.sql.Time.
    Converts all date/time formats into java.sql.Timestamp.
    Converts this Value and returns it as a String using the locale looked-up from current thread or if not found, for system default.
    Produces a debug/logging string of the value (including the type).
    Converts this Value and returns it as a javax.xml.datatype.Duration using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as an ImmutableXMLGregorianCalendar using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as an ImmutableXMLGregorianCalendar using the locale information specified.
    Converts this Value and returns it as a Year using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as a YearMonth using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as a ZonedDateTime using the locale looked-up from current thread or if not found, for system default.
    Converts this Value and returns it as a ZonedDateTime using the locale information specified.
    static Value.Type
    typeFromSQLType(int sqlType)
    Convenience method to convert SQL types to the default mapped value type.

    Methods inherited from class java.lang.Object

    finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • type

      public final Value.Type type
      The type of this value.
    • value

      public final Object value
      The Object of the value in its native format.
  • Constructor Details

    • Value

      public Value(Element element) throws Exception
      Constructs the Value from an Element.
      Parameters:
      element - The element.
      Throws:
      Exception - If the value could not be loaded from the element.
    • Value

      public Value(Object value)
      Constructs a Value object from the Java native representation. If the value parameter is null, it is assumed to be a java.lang.String.

      The supported object types are the value classes defined by the Type's.

      Parameters:
      value - The native value, not null.
      Throws:
      IllegalArgumentException - if the native form doesn't match what is expected.
      NullPointerException - if the value is null.
    • Value

      public Value(String value)
      Constructs a String value.
      Parameters:
      value - The value.
    • Value

      public Value(KString value)
      Constructs a KString value.
      Parameters:
      value - The value.
    • Value

      public Value(boolean value)
      Constructs a Boolean value.
      Parameters:
      value - The value.
    • Value

      public Value(Boolean value)
      Constructs a Boolean value.
      Parameters:
      value - The value.
    • Value

      public Value(byte value)
      Constructs a Byte value.
      Parameters:
      value - The value.
    • Value

      public Value(Byte value)
      Constructs a Byte value.
      Parameters:
      value - The value.
    • Value

      public Value(BigDecimal value)
      Constructs a Decimal value.
      Parameters:
      value - The value.
    • Value

      public Value(short value)
      Constructs a Short value.
      Parameters:
      value - The value.
    • Value

      public Value(Short value)
      Constructs a Short value.
      Parameters:
      value - The value.
    • Value

      public Value(int value)
      Constructs a Integer value.
      Parameters:
      value - The value.
    • Value

      public Value(Integer value)
      Constructs a Integer value.
      Parameters:
      value - The value.
    • Value

      public Value(long value)
      Constructs a Long value.
      Parameters:
      value - The value.
    • Value

      public Value(Long value)
      Constructs a Long value.
      Parameters:
      value - The value.
    • Value

      public Value(float value)
      Constructs a Float value.
      Parameters:
      value - The value.
    • Value

      public Value(Float value)
      Constructs a Float value.
      Parameters:
      value - The value.
    • Value

      public Value(double value)
      Constructs a Double value.
      Parameters:
      value - The value.
    • Value

      public Value(Double value)
      Constructs a Double value.
      Parameters:
      value - The value.
    • Value

      public Value(LocalTime value)
      Constructs a LocalTime value.
      Parameters:
      value - The value.
    • Value

      public Value(OffsetTime value)
      Constructs an OffsetTime value.
      Parameters:
      value - The value.
    • Value

      public Value(LocalDate value)
      Constructs a LocalDate value.
      Parameters:
      value - The value.
    • Value

      public Value(MonthDay value)
      Constructs a MonthDay value.
      Parameters:
      value - The value.
    • Value

      public Value(Year value)
      Constructs a Year value.
      Parameters:
      value - The value.
    • Value

      public Value(YearMonth value)
      Constructs a YearMonth value.
      Parameters:
      value - The value.
    • Value

      public Value(LocalDateTime value)
      Constructs a LocalDateTime value.
      Parameters:
      value - The value.
    • Value

      public Value(OffsetDateTime value)
      Constructs a OffsetDateTime value.
      Parameters:
      value - The value.
    • Value

      public Value(ZonedDateTime value)
      Constructs a ZonedDateTime value.
      Parameters:
      value - The value.
    • Value

      public Value(ImmutableXMLGregorianCalendar value)
      Constructs an ImmutableXMLGregorianCalendar value.
      Parameters:
      value - The value.
    • Value

      public Value(XMLGregorianCalendar value)
      Creates an immutable XMLGregorianCalendar value.
      Parameters:
      value - The XMLGregorianCalendar value.
    • Value

      public Value(Duration value)
      Constructs a Duration value.
      Parameters:
      value - The value.
    • Value

      public Value(Period value)
      Constructs a Period value.
      Parameters:
      value - The value.
    • Value

      public Value(Duration value)
      Constructs a value from an XML Duration.
      Parameters:
      value - The value.
    • Value

      public Value(byte[] value)
      Constructs a Binary value.
      Parameters:
      value - The value.
  • Method Details

    • getSQLTypeName

      public static String getSQLTypeName(int sqlType)
      Returns the String of the given SQL Types value.
      Parameters:
      sqlType - The SQL Types value.
      Returns:
      The String representation, or "unknown[sqlType]".
    • getType

      public static Value.Type getType(String type)
      Returns the Value Type from a given type string.
      Parameters:
      type - The String representation of the Type.
      Returns:
      The Type, or null if not a valid type.
    • isTypeClassValid

      public static boolean isTypeClassValid(String classFQN)
      Checks if a fully qualified name is valid as type.
      Parameters:
      classFQN - Class name such as "java.lang.String".
      Returns:
      Type validity flag.
    • getValueType

      public static Value.Type getValueType(Object value)
      Guesses the type value for a Value class.
      Parameters:
      value - The value.
      Returns:
      The type, or null if it fails or value is null.
    • ofType

      public static Value ofType(Object value, Value.Type targetType, LocaleInfo localeInfo)
      Tries to create a Value instance forced to the specified type. The value is converted from the supported conversion objects that are specific to the type in question using it's convert method, i.e. calling Value.Type.valueObject method IValueObject.convert(Object,Value.Type,LocaleInfo).

      This method is used e.g. when converting values from SQL data types to a requested Value.Type.

      Parameters:
      value - The value as a Java object, possibly null.
      targetType - The target value type to enforce.
      localeInfo - The locale information, null to look-up from current thread or if not found, for system default.
      Returns:
      a Value instance of the specified type or null if conversion failed.
    • getDefaultValue_StringFallback

      public static Value getDefaultValue_StringFallback(Value.Type type, boolean isNullAllowed)
      Safely gets a shared instance of a null or default Value of the specified type depending on the isNullAllowed flag. No exception is thrown if the type is invalid, as the T_String type is assumed instead.
      Parameters:
      type - The value type. If the value type is null, Value.Type.String is assumed.
      isNullAllowed - If null is allowed or not.
      Returns:
      The default or null Value of the value type.
    • typeFromSQLType

      public static Value.Type typeFromSQLType(int sqlType)
      Convenience method to convert SQL types to the default mapped value type.
      Parameters:
      sqlType - the SQL type
      Returns:
      The default mapped value Type, or null if not found.
    • ofSQLType

      public static Value ofSQLType(Object value, int sqlType)
      Tries to create a Value instance with a type forced to the default SQL Type mapping.
      Parameters:
      value - The value as a java object
      sqlType - the SQL Type to enforce
      Returns:
      a Value instance of the implied type. (default mapping of the SQL type) or null if conversion failed.
    • getXMLDataFactory

      public static DatatypeFactory getXMLDataFactory()
      Gets the XML datatype factory.
      Returns:
      The XML datatype factory singleton.
    • guessType

      public static Value.Type guessType(String value)
      Guesses the value type from a String in the following order:
      1. Long,
      2. Double,
      3. BigDecimal,
      4. ZonedDateTime,
      5. OffsetDateTime,
      6. LocalDateTime,
      7. OffsetTime,
      8. LocalTime,
      9. LocalDate,
      10. Period,
      11. Duration,
      12. MonthDay,
      13. YearMonth,
      14. Boolean.
      Parameters:
      value - The value.
      Returns:
      The type matching, or Type.String in worst case for no match.
    • fromLocalTime

      public static Value fromLocalTime(long millis)
      Constructs a Time value.
      Parameters:
      millis - milliseconds since January 1, 1970, 00:00:00 GMT; a negative number is milliseconds before January 1, 1970, 00:00:00 GMT, or the Java epoch.
      Returns:
      A new Value with LocalTime type.
    • fromLocalTime

      public static Value fromLocalTime(Time time)
      Constructs a Time value.
      Parameters:
      time - A time object as java.util.Date or java.sql.Time.
      Returns:
      A new Value with LocalTime type.
    • fromLocalTime

      public static Value fromLocalTime(Date time)
      Constructs a Time value.
      Parameters:
      time - A time object as java.util.Date or java.sql.Time.
      Returns:
      A new Value with LocalTime type.
    • fromLocalDate

      public static Value fromLocalDate(long millis)
      Constructs a LocaleDate value.
      Parameters:
      millis - milliseconds since January 1, 1970, 00:00:00 GMT; a negative number is milliseconds before January 1, 1970, 00:00:00 GMT
      Returns:
      A new value.
    • fromLocalDate

      public static Value fromLocalDate(Date date)
      Constructs a LocalDate value from an SQL date.
      Parameters:
      date - The SQL date.
      Returns:
      a new LocalDate value.
    • fromLocalDate

      public static Value fromLocalDate(Date date)
      Constructs a Date value.
      Parameters:
      date - The "Java" Date.
      Returns:
      a new LocalDate value.
    • fromLocalDateTime

      public static Value fromLocalDateTime(long millis)
      Constructs LocalDateTime from milliseconds since Java epoch value.
      Parameters:
      millis - milliseconds since January 1, 1970, 00:00:00 GMT; a negative number is milliseconds before January 1, 1970, 00:00:00 GMT
      Returns:
      A Value with LocalDateTime as type.
    • fromLocalDateTime

      public static Value fromLocalDateTime(Timestamp timestamp)
      Constructs a LocalDateTime from a Timestamp value.
      Parameters:
      timestamp - The timestamp value.
      Returns:
      A Value with LocalDateTime as type.
    • fromLocalDateTime

      public static Value fromLocalDateTime(Date dateAndTime)
      Constructs a LocalDateTime from a Date (and time) value.
      Parameters:
      dateAndTime - The date/time value.
      Returns:
      A Value with LocalDateTime as type.
    • fromCalendar

      public static Value fromCalendar(Calendar calendar)
      Creates a ZonedDateTime value from a Calendar.
      Parameters:
      calendar - The calendar instance, can also be a GregorianCalendar instance.
      Returns:
      A Value with ZonedDateTime type.
    • fromDateBasedValue

      public static Value fromDateBasedValue(XMLGregorianCalendar xcal)
      Creates a Value from an XMLGregorianCalendar depending on the datatype:
      Parameters:
      xcal - The XML Gregorian Calendar that is used for parsing the gXXX datatypes for XML Schema.
      Returns:
      A Value with the type as described above.
      Throws:
      DateTimeException - If the value of any field is out of range
      IllegalStateException - If the combination of set fields does not match one of the eight defined XML Schema built-in date/time datatypes.
    • fromDurationInMillis

      public static Value fromDurationInMillis(Number millis)
      Creates a duration from a numeric value in milliseconds.
      Parameters:
      millis - A duration value in milliseconds.
      Returns:
      The new value.
    • initialize

      public void initialize(Element element) throws Exception
      Initializes an XML element from this value. There is no support for a null value when saving from XML.
      Parameters:
      element - Element to store the value in.
      Throws:
      Exception - If the value could not be saved.
    • isNull

      public boolean isNull()
      Checks if the value is NULL.
      Returns:
      true if the value object is null, otherwise false.
    • getTypeString

      public String getTypeString()
      Gets the type string.
      Returns:
      The type string.
    • toStringWithType

      public String toStringWithType()
      Produces a debug/logging string of the value (including the type).
      Returns:
      The string formatted as "Type[value]".
    • equals

      public boolean equals(Object o)
      Checks if two values are equal; the type must match as well as the value. Two values that are null must match the type.
      Overrides:
      equals in class Object
      Parameters:
      o - The object to compare with.
      Returns:
      The equality flag.
    • equals

      public boolean equals(Value v, boolean ignoreType)
      Checks if two values are equal; the value (optionally converted) must match. Two values that are null must (optionally) match the type.
      Parameters:
      v - The value to compare with.
      ignoreType - Perform value conversion if needed when set to true.
      Returns:
      The equality flag.
    • equals

      public boolean equals(Value v)
      Checks if two values are equal; the type must match as well as the value. Two values that are null must match the type.
      Parameters:
      v - The value to compare with.
      Returns:
      The equality flag.
    • equals

      public static boolean equals(Value v1, Value v2, boolean ignoreType)
      Checks if two Value's are equal, also being null. Optionally ignore type.
      Parameters:
      v1 - The first value.
      v2 - The second value.
      ignoreType - Perform value conversion if needed when set to true.
      Returns:
      true if both values are equal.
    • equals

      public static boolean equals(Value v1, Value v2)
      Checks if two Value's are equal, also being null. The type must match as well as the value
      Parameters:
      v1 - The first value.
      v2 - The second value.
      Returns:
      true if both values are equal.
    • clone

      public Value clone()
      Clones the value.
      Overrides:
      clone in class Object
      Returns:
      Value for the clone instance: the same value is returned because they are invariant/immutable, i.e. this instance is returned when the value is NOT a KString value. If the value is of KString type and not null, the return value is a cloned instance, i.e. a new instance of a Value with a cloned KString value.
    • dispose

      public void dispose()
      Disposes of the value. This method has no affect on non-KString values. The values are cleaned up later in garbage collection anyway, but please bear in mind that KString may have references to other properties and disposing the value will clean it up quicker.
    • hashCode

      public int hashCode()
      Hash code.
      Overrides:
      hashCode in class Object
      Returns:
      Returns the hash code.
    • getString

      public String getString(String pattern, LocaleInfo localeInfo) throws IllegalArgumentException
      Gets the value as a String with the specified pattern formatter string. This pattern formatter string depends on the value type.
      Parameters:
      pattern - The pattern for the formatter. If the pattern is null, a default formatter is used.
      localeInfo - The locale information or null for default locale.
      Returns:
      The formatted value as a String. If the value is null, the return value will be null.
      Throws:
      IllegalArgumentException - If the pattern is in error.
    • getString

      public static String getString(Object value, Value.Type type, String pattern, LocaleInfo localeInfo) throws IllegalArgumentException
      Gets the value as a String with the specified pattern formatter string. This pattern formatter string depends on the value type.
      Parameters:
      value - The value.
      type - The value type.
      pattern - The pattern for the formatter. If the pattern is null, a default formatter is used.
      localeInfo - The locale information or null for default locale.
      Returns:
      The formatted value as a String. If the value is null, the return value will be null.
      Throws:
      IllegalArgumentException - If the pattern is in error.
    • parseValue

      public static Value parseValue(String value, Value.Type type, String pattern, LocaleInfo localeInfo) throws ParseException, IllegalArgumentException
      Creates a Value object from a String using a specified pattern and locale. If the value is null, the Value will have a also null value, but return a Value Object.
      Parameters:
      value - The value, can be null.
      type - The type for the value.
      pattern - The pattern for the parser. If the pattern is null, a default parser is used.
      localeInfo - The locale information or null for default locale.
      Returns:
      A value object, never null.
      Throws:
      ParseException - For parsing errors.
      IllegalArgumentException - If the pattern is invalid.
    • getSQLType

      public int getSQLType()
      Gets the default SQL type for this Value type.
      Returns:
      the SQL type, or Types.JAVA_OBJECT if no JDBC mapping is present.
    • getScale

      public int getScale()
      Get the scale of this value. Only interesting for BigDecimal.
      Returns:
      The scale.
    • convert

      public Value convert(Value.Type targetType) throws ParseException
      Converts this Value from its current value type to the requested target type using the locale looked-up from current thread or if not found, for system default.
      Parameters:
      targetType - The target type requested.
      Returns:
      The converted value as a new instance.
      Throws:
      ParseException - Thrown when conversion is not possible or a parsing error occurs.
    • convert

      public Value convert(Value.Type targetType, LocaleInfo localeInfo) throws ParseException
      Converts this Value from its current value type to the requested target type using the specified locale information.
      Parameters:
      targetType - The target type requested.
      localeInfo - The locale information, null to look-up from current thread or if not found, for system default.
      Returns:
      The converted value as a new instance.
      Throws:
      ParseException - Thrown when conversion is not possible or a parsing error occurs.
    • toString

      public String toString()
      Converts this Value and returns it as a String using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a KString format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Overrides:
      toString in class Object
      Returns:
      The String representation, or null if value is null.
    • toKString

      public KString toKString()
      Converts this Value and returns it as a KString using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a KString format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The KString representation (like toString()), or null if value is null.
    • toBoolean

      public Boolean toBoolean()
      Converts this Value and returns it as a Boolean using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a Boolean format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a Boolean, or null if the Value is null.
    • toByte

      public Byte toByte()
      Converts this Value and returns it as a Byte using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a Byte format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a Byte, or null if the Value is null.
    • toShort

      public Short toShort()
      Converts this Value and returns it as a Short using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a Short format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a Short, or null if the Value is null.
    • toInteger

      public Integer toInteger()
      Converts this Value and returns it as an Integer using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a Integer format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a Integer, or null if the Value is null.
    • toLong

      public Long toLong()
      Converts this Value and returns it as a Long using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a Long format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a Long, or null if the Value is null.
    • toFloat

      public Float toFloat()
      Converts this Value and returns it as a Float using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a Float format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a Float, or null if the Value is null.
    • toDouble

      public Double toDouble()
      Converts this Value and returns it as a Double using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a Double format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a Double, or null if the Value is null.
    • toBigInteger

      public BigInteger toBigInteger()
      Converts this Value and returns it as a BigInteger using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a BigInteger format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a BigInteger, or null if the Value is null.
    • toBigDecimal

      public BigDecimal toBigDecimal()
      Converts this Value and returns it as a BigDecimal using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a BigDecimal format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a BigDecimal, or null if the Value is null.
    • toLocalTime

      public LocalTime toLocalTime()
      Converts this Value and returns it as a LocalTime using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a LocalTime format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a LocalTime, or null if the Value is null.
    • toOffsetTime

      public OffsetTime toOffsetTime()
      Converts this Value and returns it as an OffsetTime using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a OffsetTime format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a OffsetTime, or null if the Value is null.
    • toOffsetTime

      public OffsetTime toOffsetTime(LocaleInfo localeInfo)
      Converts this Value and returns it as an OffsetTime using the locale information specified.

      If this Value already is in a OffsetTime format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Parameters:
      localeInfo - The locale information, null to look-up from current thread or if not found, for system default.
      Returns:
      The value as a OffsetTime, or null if the Value is null.
    • toLocalDate

      public LocalDate toLocalDate()
      Converts this Value and returns it as a LocalDate using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a LocalDate format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a LocalDate, or null if the Value is null.
    • toMonthDay

      public MonthDay toMonthDay()
      Converts this Value and returns it as a MonthDay using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a MonthDay format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a MonthDay, or null if the Value is null.
    • toYear

      public Year toYear()
      Converts this Value and returns it as a Year using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a Year format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a Year, or null if the Value is null.
    • toYearMonth

      public YearMonth toYearMonth()
      Converts this Value and returns it as a YearMonth using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a YearMonth format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a YearMonth, or null if the Value is null.
    • toLocalDateTime

      public LocalDateTime toLocalDateTime()
      Converts this Value and returns it as a LocalDateTime using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a LocalDateTime format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a LocalDateTime, or null if the Value is null.
    • toLocalDateTime

      public LocalDateTime toLocalDateTime(LocaleInfo localeInfo)
      Converts this Value and returns it as a LocalDateTime using the locale information specified.

      If this Value already is in a LocalDateTime format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Parameters:
      localeInfo - The locale information, null to look-up from current thread or if not found, for system default.
      Returns:
      The value as a LocalDateTime, or null if the Value is null.
    • toOffsetDateTime

      public OffsetDateTime toOffsetDateTime()
      Converts this Value and returns it as an OffsetDateTime using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a OffsetDateTime format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a OffsetDateTime, or null if the Value is null.
    • toOffsetDateTime

      public OffsetDateTime toOffsetDateTime(LocaleInfo localeInfo)
      Converts this Value and returns it as an OffsetDateTime using the locale information specified.

      If this Value already is in a OffsetDateTime format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Parameters:
      localeInfo - The locale information, null to look-up from current thread or if not found, for system default.
      Returns:
      The value as a OffsetDateTime, or null if the Value is null.
    • toZonedDateTime

      public ZonedDateTime toZonedDateTime()
      Converts this Value and returns it as a ZonedDateTime using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a ZonedDateTime format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a ZonedDateTime, or null if the Value is null.
    • toZonedDateTime

      public ZonedDateTime toZonedDateTime(LocaleInfo localeInfo)
      Converts this Value and returns it as a ZonedDateTime using the locale information specified.

      If this Value already is in a ZonedDateTime format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Parameters:
      localeInfo - The locale information, null to look-up from current thread or if not found, for system default.
      Returns:
      The value as a ZonedDateTime, or null if the Value is null.
    • toXMLGregorianCalendar

      public ImmutableXMLGregorianCalendar toXMLGregorianCalendar()
      Converts this Value and returns it as an ImmutableXMLGregorianCalendar using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in an ImmutableXMLGregorianCalendar format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as an XMLGregorianCalendar, or null if the Value is null.
    • toXMLGregorianCalendar

      public ImmutableXMLGregorianCalendar toXMLGregorianCalendar(LocaleInfo localeInfo)
      Converts this Value and returns it as an ImmutableXMLGregorianCalendar using the locale information specified.

      If this Value already is in an ImmutableXMLGregorianCalendar format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Parameters:
      localeInfo - The locale information, null to look-up from current thread or if not found, for system default.
      Returns:
      The value as an XMLGregorianCalendar, or null if the Value is null.
    • toDuration

      public Duration toDuration()
      Converts this Value and returns it as a Duration using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in an Duration format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a Duration, or null if the Value is null.
    • toPeriod

      public Period toPeriod()
      Converts this Value and returns it as a Period using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a Period format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a Period, or null if the Value is null.
    • toXMLDuration

      public Duration toXMLDuration()
      Converts this Value and returns it as a javax.xml.datatype.Duration using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a javax.xml.datatype.Duration format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a javax.xml.datatype.Duration, or null if the Value is null.
    • toBinary

      public byte[] toBinary()
      Converts this Value and returns it as a Binary byte [] using the locale looked-up from current thread or if not found, for system default.

      If this Value already is in a byte [] format, the value is returned directly.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead.

      Returns:
      The value as a Binary byte [], or null if the Value is null.
    • toDate

      public Date toDate()
      Converts all date/time formats into java.util.Date. Many other Value's can be converted to date/time formats by using the conversion of a number of milliseconds from the Epoch (January 1st 1970 00:00:00 UTC) to a date. This includes all numbers and duration/periods.

      The conversion is done silently and you may experience loss of precision.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead. Then you convert the native date/time Value type to a java.util.Date.

      Returns:
      The Value as a java.util.Date if possible, null if Value is null or conversion fails.
    • toSQLTimestamp

      public Timestamp toSQLTimestamp()
      Converts all date/time formats into java.sql.Timestamp. Many other Value's can be converted to date/time formats by using the conversion of a number of milliseconds from the Epoch (January 1st 1970 00:00:00 UTC) to a date. This includes all numbers and duration/periods.

      The conversion is done silently and you may experience loss of precision.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead. Then you convert the native date/time Value type to a java.sql.Timestamp.

      Returns:
      The Value as a java.sql.Timestamp if possible, null if Value is null or conversion fails.
    • toSQLTime

      public Time toSQLTime()
      Converts all date/time formats into java.sql.Time. Many other Value's can be converted to date/time formats by using the conversion of a number of milliseconds from the Epoch (January 1st 1970 00:00:00 UTC) to a date. This includes all numbers and duration/periods.

      The conversion is done silently and you may experience loss of precision.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead. Then you convert the native date/time Value type to a java.sql.Time.

      Returns:
      The Value as a java.sql.Time if possible, null if Value is null or conversion fails.
    • toSQLDate

      public Date toSQLDate()
      Converts all date/time formats into java.sql.Date. Many other Value's can be converted to date/time formats by using the conversion of a number of milliseconds from the Epoch (January 1st 1970 00:00:00 UTC) to a date. This includes all numbers and duration/periods.

      The conversion is done silently and you may experience loss of precision.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead. Then you convert the native date/time Value type to a java.sql.Date.

      Returns:
      The Value as a java.sql.Date if possible, null if Value is null or conversion fails.
    • toGregorianCalendar

      public GregorianCalendar toGregorianCalendar()
      Converts all date/time formats into GregorianCalendar. Many other Value's can be converted to date/time formats by using the conversion of a number of milliseconds from the Epoch (January 1st 1970 00:00:00 UTC) to a date. This includes all numbers and duration/periods.

      The conversion is done silently and you may experience loss of precision.

      If the conversion cannot be done, it is silently returning null without logging or throwing an exception. Do not use this method if you wish to have control over the conversion process, use convert(Type) or or convert(Type, LocaleInfo) instead. Then you convert the native date/time Value type to a java.sql.Date.

      Returns:
      The Value as a GregorianCalendar if possible, null if Value is null or conversion fails.
    • adjust

      public Value adjust(TemporalAdjuster temporalAdjuster) throws DateTimeException, ArithmeticException
      Adjusts the current temporal value with a temporal adjuster.

      The current value type must be of one of the supported types:

      • LocalTime,
      • OffsetTime,
      • LocalDate,
      • MonthDay,
      • Year,
      • YearMonth,
      • LocalDateTime,
      • OffsetDateTime or
      • ZonedDateTime,
      otherwise IllegalStateException is thrown.

      This method makes it possible to update e.g. a LocalDateTime with a LocalTime, returning a new LocalDateTime Value with the same LocalDate, but with the new LocalTime.

      Parameters:
      temporalAdjuster - Another temporal used to adjust with.
      Returns:
      The new Value.
      Throws:
      ArithmeticException - If numeric overflow occurs.
      DateTimeException - If unable to make the adjustment.
      IllegalStateException - If the current value is null, i.e. isNull() returns true, or if the Value type is not of valid temporal type.