Package org.h2.value

Class ValueInterval

All Implemented Interfaces:
HasSQL, Typed

public final class ValueInterval extends Value
Implementation of the INTERVAL data type.
  • Field Details

    • DEFAULT_PRECISION

      public static final int DEFAULT_PRECISION
      The default leading field precision for intervals.
      See Also:
    • MAXIMUM_PRECISION

      public static final int MAXIMUM_PRECISION
      The maximum leading field precision for intervals.
      See Also:
    • DEFAULT_SCALE

      public static final int DEFAULT_SCALE
      The default scale for intervals with seconds.
      See Also:
    • MAXIMUM_SCALE

      public static final int MAXIMUM_SCALE
      The maximum scale for intervals with seconds.
      See Also:
    • MULTIPLIERS

      private static final long[] MULTIPLIERS
    • valueType

      private final int valueType
    • negative

      private final boolean negative
    • leading

      private final long leading
    • remaining

      private final long remaining
  • Constructor Details

    • ValueInterval

      private ValueInterval(int type, boolean negative, long leading, long remaining)
  • Method Details

    • from

      public static ValueInterval from(IntervalQualifier qualifier, boolean negative, long leading, long remaining)
      Create a ValueInterval instance.
      Parameters:
      qualifier - qualifier
      negative - whether interval is negative
      leading - value of leading field
      remaining - values of all remaining fields
      Returns:
      interval value
    • getDisplaySize

      public static int getDisplaySize(int type, int precision, int scale)
      Returns display size for the specified qualifier, precision and fractional seconds precision.
      Parameters:
      type - the value type
      precision - leading field precision
      scale - fractional seconds precision. Ignored if specified type of interval does not have seconds.
      Returns:
      display size
    • getSQL

      public StringBuilder getSQL(StringBuilder builder, int sqlFlags)
      Description copied from interface: HasSQL
      Appends the SQL statement of this object to the specified builder.
      Parameters:
      builder - string builder
      sqlFlags - formatting flags
      Returns:
      the specified string builder
    • getType

      public TypeInfo getType()
      Description copied from interface: Typed
      Returns the data type.
      Specified by:
      getType in interface Typed
      Specified by:
      getType in class Value
      Returns:
      the data type
    • getValueType

      public int getValueType()
      Description copied from class: Value
      Get the value type.
      Specified by:
      getValueType in class Value
      Returns:
      the value type
    • getMemory

      public int getMemory()
      Description copied from class: Value
      Get the memory used by this object.
      Overrides:
      getMemory in class Value
      Returns:
      the memory used in bytes
    • checkPrecision

      boolean checkPrecision(long prec)
      Check if the precision is smaller or equal than the given precision.
      Parameters:
      prec - the maximum precision
      Returns:
      true if the precision of this value is smaller or equal to the given precision
    • setPrecisionAndScale

      ValueInterval setPrecisionAndScale(TypeInfo targetType, Object column)
    • getString

      public String getString()
      Description copied from class: Value
      Get the value as a string.
      Specified by:
      getString in class Value
      Returns:
      the string
    • getLong

      public long getLong()
      Description copied from class: Value
      Returns this value as a Java long value.
      Overrides:
      getLong in class Value
      Returns:
      value
    • getBigDecimal

      public BigDecimal getBigDecimal()
      Overrides:
      getBigDecimal in class Value
    • getFloat

      public float getFloat()
      Description copied from class: Value
      Returns this value as a Java float value.
      Overrides:
      getFloat in class Value
      Returns:
      value
    • getDouble

      public double getDouble()
      Description copied from class: Value
      Returns this value as a Java double value.
      Overrides:
      getDouble in class Value
      Returns:
      value
    • getInterval

      public Interval getInterval()
      Returns the interval.
      Returns:
      the interval
    • getQualifier

      public IntervalQualifier getQualifier()
      Returns the interval qualifier.
      Returns:
      the interval qualifier
    • isNegative

      public boolean isNegative()
      Returns where the interval is negative.
      Returns:
      where the interval is negative
    • getLeading

      public long getLeading()
      Returns value of leading field of this interval. For SECOND intervals returns integer part of seconds.
      Returns:
      value of leading field
    • getRemaining

      public long getRemaining()
      Returns combined value of remaining fields of this interval. For SECOND intervals returns nanoseconds.
      Returns:
      combined value of remaining fields
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in class Value
    • equals

      public boolean equals(Object obj)
      Description copied from class: Value
      Check if the two values have the same hash code. No data conversion is made; this method returns false if the other object is not of the same class. For some values, compareTo may return 0 even if equals return false. Example: ValueDecimal 0.0 and 0.00.
      Specified by:
      equals in class Value
      Parameters:
      obj - the other value
      Returns:
      true if they are equal
    • compareTypeSafe

      public int compareTypeSafe(Value v, CompareMode mode, CastDataProvider provider)
      Description copied from class: Value
      Compare this value against another value given that the values are of the same data type.
      Specified by:
      compareTypeSafe in class Value
      Parameters:
      v - the other value
      mode - the compare mode
      provider - the cast information provider
      Returns:
      0 if both values are equal, -1 if the other value is smaller, and 1 otherwise
    • getSignum

      public int getSignum()
      Overrides:
      getSignum in class Value
    • add

      public Value add(Value v)
      Description copied from class: Value
      Add a value and return the result.
      Overrides:
      add in class Value
      Parameters:
      v - the value to add
      Returns:
      the result
    • subtract

      public Value subtract(Value v)
      Description copied from class: Value
      Subtract a value and return the result.
      Overrides:
      subtract in class Value
      Parameters:
      v - the value to subtract
      Returns:
      the result
    • negate

      public Value negate()
      Description copied from class: Value
      Return -value if this value support arithmetic operations.
      Overrides:
      negate in class Value
      Returns:
      the negative