Top Description Fields Constructors Methods
org.h2.util

public Class IntervalUtils

extends Object
Class Inheritance
Static Imports
org.h2.util.DateTimeUtils.NANOS_PER_DAY, .DateTimeUtils.NANOS_PER_HOUR, .DateTimeUtils.NANOS_PER_MINUTE, .DateTimeUtils.NANOS_PER_SECOND

This utility class contains interval conversion functions.

Field Summary

Modifier and TypeField and Description
private static final BigInteger
private static final BigInteger
private static final BigInteger
private static final BigInteger
private static final BigInteger
private static final BigInteger
public static final BigInteger
NANOS_PER_DAY_BI

The number of nanoseconds per day as BigInteger.

private static final BigInteger
private static final BigInteger
private static final BigInteger

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static StringBuilder

Returns:

the specified string builder
appendInterval
(StringBuilder
string builder to append to
buff
,
IntervalQualifier
qualifier of the interval
qualifier
,
boolean
whether interval is negative
negative
,
long
the value of leading field
leading
,
long
the value of all remaining fields
remaining
)

Formats interval as a string and appends it to a specified string builder.

public static long

Returns:

days, or 0
daysFromInterval
(IntervalQualifier
qualifier
qualifier
,
boolean
whether interval is negative
negative
,
long
value of leading field
leading
,
long
values of all remaining fields
remaining
)

Returns days value of interval, if any.

public static long

Returns:

hours, or 0
hoursFromInterval
(IntervalQualifier
qualifier
qualifier
,
boolean
whether interval is negative
negative
,
long
value of leading field
leading
,
long
values of all remaining fields
remaining
)

Returns hours value of interval, if any.

public static ValueInterval

Returns:

the interval value
intervalFromAbsolute
(IntervalQualifier
the qualifier of interval
qualifier
,
BigInteger
absolute value in months for year-month intervals, in nanoseconds for day-time intervals
absolute
)

Converts absolute value to an interval value.

private static ValueInterval
public static BigInteger

Returns:

absolute value in months for year-month intervals, in nanoseconds for day-time intervals
intervalToAbsolute
(ValueInterval
the interval value
interval
)

Converts interval value to an absolute value.

private static BigInteger
intervalToAbsolute(ValueInterval interval, BigInteger multiplier, BigInteger totalMultiplier)

private static BigInteger
private static long
public static long

Returns:

minutes, or 0
minutesFromInterval
(IntervalQualifier
qualifier
qualifier
,
boolean
whether interval is negative
negative
,
long
value of leading field
leading
,
long
values of all remaining fields
remaining
)

Returns minutes value of interval, if any.

public static long

Returns:

months, or 0
monthsFromInterval
(IntervalQualifier
qualifier
qualifier
,
boolean
whether interval is negative
negative
,
long
value of leading field
leading
,
long
values of all remaining fields
remaining
)

Returns months value of interval, if any.

public static long

Returns:

nanoseconds, or 0
nanosFromInterval
(IntervalQualifier
qualifier
qualifier
,
boolean
whether interval is negative
negative
,
long
value of leading field
leading
,
long
values of all remaining fields
remaining
)

Returns nanoseconds value of interval, if any.

public static ValueInterval

Returns:

the interval value. Type of value can be different from the specified qualifier.
parseFormattedInterval
(IntervalQualifier
the default qualifier to use if string does not have one
qualifier
,
String
the string with type information to parse
s
)

Parses the specified string as INTERVAL value.

public static ValueInterval

Returns:

the interval value
parseInterval
(IntervalQualifier
the qualifier of interval
qualifier
,
boolean
whether the interval is negative
negative
,
String
the string to parse
s
)

Parses the specified string as INTERVAL value.

private static ValueInterval
parseInterval2(IntervalQualifier qualifier, String s, char ch, int max, boolean negative)

private static long
parseIntervalLeading(String s, int start, int end, boolean negative)

private static long
parseIntervalRemaining(String s, int start, int end, int max)

private static long
private static int
skipWS(String s, int i)

private static int
skipWSEnd(String s, int i)

public static boolean

Returns:

fixed value of negative field
validateInterval
(IntervalQualifier
qualifier
qualifier
,
boolean
whether interval is negative
negative
,
long
value of leading field
leading
,
long
values of all remaining fields
remaining
)

Ensures that all fields in interval are valid.

public static long

Returns:

years, or 0
yearsFromInterval
(IntervalQualifier
qualifier
qualifier
,
boolean
whether interval is negative
negative
,
long
value of leading field
leading
,
long
values of all remaining fields
remaining
)

Returns years value of interval, if any.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

HOURS_PER_DAY_BIback to summary
private static final BigInteger HOURS_PER_DAY_BI
LEADING_MAXback to summary
private static final BigInteger LEADING_MAX
LEADING_MINback to summary
private static final BigInteger LEADING_MIN
MINUTES_PER_DAY_BIback to summary
private static final BigInteger MINUTES_PER_DAY_BI
MINUTES_PER_HOUR_BIback to summary
private static final BigInteger MINUTES_PER_HOUR_BI
MONTHS_PER_YEAR_BIback to summary
private static final BigInteger MONTHS_PER_YEAR_BI
NANOS_PER_DAY_BIback to summary
public static final BigInteger NANOS_PER_DAY_BI

The number of nanoseconds per day as BigInteger.

NANOS_PER_HOUR_BIback to summary
private static final BigInteger NANOS_PER_HOUR_BI
NANOS_PER_MINUTE_BIback to summary
private static final BigInteger NANOS_PER_MINUTE_BI
NANOS_PER_SECOND_BIback to summary
private static final BigInteger NANOS_PER_SECOND_BI

Constructor Detail

IntervalUtilsback to summary
private IntervalUtils()

Method Detail

appendIntervalback to summary
public static StringBuilder appendInterval(StringBuilder buff, IntervalQualifier qualifier, boolean negative, long leading, long remaining)

Formats interval as a string and appends it to a specified string builder.

Parameters
buff:StringBuilder

string builder to append to

qualifier:IntervalQualifier

qualifier of the interval

negative:boolean

whether interval is negative

leading:long

the value of leading field

remaining:long

the value of all remaining fields

Returns:StringBuilder

the specified string builder

daysFromIntervalback to summary
public static long daysFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining)

Returns days value of interval, if any.

Parameters
qualifier:IntervalQualifier

qualifier

negative:boolean

whether interval is negative

leading:long

value of leading field

remaining:long

values of all remaining fields

Returns:long

days, or 0

hoursFromIntervalback to summary
public static long hoursFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining)

Returns hours value of interval, if any.

Parameters
qualifier:IntervalQualifier

qualifier

negative:boolean

whether interval is negative

leading:long

value of leading field

remaining:long

values of all remaining fields

Returns:long

hours, or 0

intervalFromAbsoluteback to summary
public static ValueInterval intervalFromAbsolute(IntervalQualifier qualifier, BigInteger absolute)

Converts absolute value to an interval value.

Parameters
qualifier:IntervalQualifier

the qualifier of interval

absolute:BigInteger

absolute value in months for year-month intervals, in nanoseconds for day-time intervals

Returns:ValueInterval

the interval value

intervalFromAbsoluteback to summary
private static ValueInterval intervalFromAbsolute(IntervalQualifier qualifier, BigInteger absolute, BigInteger divisor)
intervalToAbsoluteback to summary
public static BigInteger intervalToAbsolute(ValueInterval interval)

Converts interval value to an absolute value.

Parameters
interval:ValueInterval

the interval value

Returns:BigInteger

absolute value in months for year-month intervals, in nanoseconds for day-time intervals

intervalToAbsoluteback to summary
private static BigInteger intervalToAbsolute(ValueInterval interval, BigInteger multiplier, BigInteger totalMultiplier)
intervalToAbsoluteback to summary
private static BigInteger intervalToAbsolute(ValueInterval interval, BigInteger multiplier)
leadingExactback to summary
private static long leadingExact(BigInteger absolute)
minutesFromIntervalback to summary
public static long minutesFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining)

Returns minutes value of interval, if any.

Parameters
qualifier:IntervalQualifier

qualifier

negative:boolean

whether interval is negative

leading:long

value of leading field

remaining:long

values of all remaining fields

Returns:long

minutes, or 0

monthsFromIntervalback to summary
public static long monthsFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining)

Returns months value of interval, if any.

Parameters
qualifier:IntervalQualifier

qualifier

negative:boolean

whether interval is negative

leading:long

value of leading field

remaining:long

values of all remaining fields

Returns:long

months, or 0

nanosFromIntervalback to summary
public static long nanosFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining)

Returns nanoseconds value of interval, if any.

Parameters
qualifier:IntervalQualifier

qualifier

negative:boolean

whether interval is negative

leading:long

value of leading field

remaining:long

values of all remaining fields

Returns:long

nanoseconds, or 0

parseFormattedIntervalback to summary
public static ValueInterval parseFormattedInterval(IntervalQualifier qualifier, String s)

Parses the specified string as INTERVAL value.

Parameters
qualifier:IntervalQualifier

the default qualifier to use if string does not have one

s:String

the string with type information to parse

Returns:ValueInterval

the interval value. Type of value can be different from the specified qualifier.

parseIntervalback to summary
public static ValueInterval parseInterval(IntervalQualifier qualifier, boolean negative, String s)

Parses the specified string as INTERVAL value.

Parameters
qualifier:IntervalQualifier

the qualifier of interval

negative:boolean

whether the interval is negative

s:String

the string to parse

Returns:ValueInterval

the interval value

parseInterval2back to summary
private static ValueInterval parseInterval2(IntervalQualifier qualifier, String s, char ch, int max, boolean negative)
parseIntervalLeadingback to summary
private static long parseIntervalLeading(String s, int start, int end, boolean negative)
parseIntervalRemainingback to summary
private static long parseIntervalRemaining(String s, int start, int end, int max)
parseIntervalRemainingSecondsback to summary
private static long parseIntervalRemainingSeconds(String s, int start)
skipWSback to summary
private static int skipWS(String s, int i)
skipWSEndback to summary
private static int skipWSEnd(String s, int i)
validateIntervalback to summary
public static boolean validateInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining)

Ensures that all fields in interval are valid.

Parameters
qualifier:IntervalQualifier

qualifier

negative:boolean

whether interval is negative

leading:long

value of leading field

remaining:long

values of all remaining fields

Returns:boolean

fixed value of negative field

yearsFromIntervalback to summary
public static long yearsFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining)

Returns years value of interval, if any.

Parameters
qualifier:IntervalQualifier

qualifier

negative:boolean

whether interval is negative

leading:long

value of leading field

remaining:long

values of all remaining fields

Returns:long

years, or 0