Package org.h2.value

Class ValueInterval

  • All Implemented Interfaces:
    HasSQL, Typed

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

      • DEFAULT_PRECISION

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

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

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

        public static final int MAXIMUM_SCALE
        The maximum scale for intervals with seconds.
        See Also:
        Constant Field Values
      • 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 Detail

      • ValueInterval

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

      • 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 java.lang.StringBuilder getSQL​(java.lang.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,
                                           java.lang.Object column)
      • getString

        public java.lang.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 java.math.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​(java.lang.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