Top Description Fields Constructors Methods
org.jooq.types

public final Class YearToSecond

extends Number
implements Interval, Comparable<YearToSecond>
Class Inheritance
All Implemented Interfaces
java.lang.Comparable, org.jooq.types.Interval, java.io.Serializable
Imports
java.time.Duration, .Period, java.time.format.DateTimeParseException, java.util.regex.Matcher, .Pattern, org.jooq.tools.Convert, .StringUtils

A combined YearToMonth / DayToSecond interval.

Some databases (e.g. PostgreSQL) allow for mixing YEAR TO MONTH and DAY TO SECOND intervals, despite the many questions such a combination raises. The YearToSecond type intends to model such vendor specific intervals.

The numeric value of this interval corresponds to its "context free" number of milliseconds. While the DayToSecond interval component can provide such a value easily (being independent of time zones, daylight saving times, leap years, or leap seconds), the YearToMonth component cannot. The implemented rules are those of PostgreSQL:

Examples:

Author
Lukas Eder

Field Summary

Modifier and TypeField and Description
private final DayToSecond
private static final Pattern
private final YearToMonth

Constructor Summary

AccessConstructor and Description
public
YearToSecond(YearToMonth yearToMonth, DayToSecond dayToSecond)

Method Summary

Modifier and TypeMethod and Description
public final YearToSecond
abs()

Implements org.jooq.types.Interval.abs.

Get the absolute value of the interval (set its sign to positive)
public final int
compareTo(YearToSecond
the object to be compared.
that
)

Implements java.lang.Comparable.compareTo.

Compares this object with the specified object for order.
public final double
doubleValue()

Implements abstract java.lang.Number.doubleValue.

Implements org.jooq.types.Interval.doubleValue.

Returns the value of the specified number as a double.
public boolean
equals(Object
the reference object with which to compare.
obj
)

Overrides java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.
public final float
floatValue()

Implements abstract java.lang.Number.floatValue.

Implements org.jooq.types.Interval.floatValue.

Returns the value of the specified number as a float.
public final int
getDays()

Get the day-part of this interval

public final DayToSecond
public final int
getHours()

Get the hour-part of this interval

public final int
getMicro()

Get the (truncated) micro-part of this interval

public final int
getMilli()

Get the (truncated) milli-part of this interval

public final int
getMinutes()

Get the minute-part of this interval

public final int
public final int
getNano()

Get the nano-part of this interval

public final int
getSeconds()

Get the second-part of this interval

public final int
getSign()

Implements org.jooq.types.Interval.getSign.

The sign of the interval
public final int
public final YearToMonth
public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for the object.
public final int
intValue()

Implements abstract java.lang.Number.intValue.

Implements org.jooq.types.Interval.intValue.

Returns the value of the specified number as an int.
public final long
longValue()

Implements abstract java.lang.Number.longValue.

Implements org.jooq.types.Interval.longValue.

Returns the value of the specified number as a long.
public final YearToSecond
neg()

Implements org.jooq.types.Interval.neg.

Negate the interval (change its sign)
pack-priv static DayToSecond
parseDS(Matcher matcher, int groupOffset)

pack-priv static YearToMonth
parseYM(Matcher matcher, int groupOffset)

public final Duration
toDuration()

Implements org.jooq.types.Interval.toDuration.

Get a duration representation of this interval.
public final String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.
public static YearToSecond

Returns:

The loaded INTERVAL DAY TO SECOND object
valueOf
(double
The number of milliseconds as a fractional number
milli
)

Load a Double representation of a INTERVAL YEAR TO SECOND by assuming standard 24 hour days and 60 second minutes.

public static YearToSecond
valueOf(Duration duration)

Transform a Duration into a YearToSecond interval by taking its number of milliseconds.

public static YearToSecond
valueOf(Period period)

Transform a Period into a YearToSecond interval.

public static YearToSecond

Returns:

The parsed YEAR TO SECOND object, or null if the string could not be parsed.
valueOf
(String
A string representation of the form [+|-][years]-[months] [+|-][days] [hours]:[minutes]:[seconds].[fractional seconds]
string
)

Parse a string representation of a INTERVAL YEAR TO SECOND

Inherited from java.lang.Number:
byteValueshortValue

Field Detail

dayToSecondback to summary
private final DayToSecond dayToSecond
PATTERNback to summary
private static final Pattern PATTERN
yearToMonthback to summary
private final YearToMonth yearToMonth

Constructor Detail

YearToSecondback to summary
public YearToSecond(YearToMonth yearToMonth, DayToSecond dayToSecond)

Method Detail

absback to summary
public final YearToSecond abs()

Implements org.jooq.types.Interval.abs.

Doc from org.jooq.types.Interval.abs.

Get the absolute value of the interval (set its sign to positive)

Annotations
@Override
compareToback to summary
public final int compareTo(YearToSecond that)

Implements java.lang.Comparable.compareTo.

Doc from java.lang.Comparable.compareTo.

Compares this object with the specified object for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

The implementor must ensure signum(x.compareTo(y)) == -signum(y.compareTo(x)) for all x and y. (This implies that x.compareTo(y) must throw an exception if and only if y.compareTo(x) throws an exception.)

The implementor must also ensure that the relation is transitive: (x.compareTo(y) > 0 && y.compareTo(z) > 0) implies x.compareTo(z) > 0.

Finally, the implementor must ensure that x.compareTo(y)==0 implies that signum(x.compareTo(z)) == signum(y.compareTo(z)), for all z.

Parameters
that:YearToSecond

the object to be compared.

Returns:int

a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

Annotations
@Override
doubleValueback to summary
public final double doubleValue()

Implements abstract java.lang.Number.doubleValue.

Implements org.jooq.types.Interval.doubleValue.

Doc from java.lang.Number.doubleValue.

Returns the value of the specified number as a double.

Returns:double

the numeric value represented by this object after conversion to type double.

Annotations
@Override
equalsback to summary
public boolean equals(Object obj)

Overrides java.lang.Object.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
obj:Object

the reference object with which to compare.

Returns:boolean

true if this object is the same as the obj argument; false otherwise.

Annotations
@Override
floatValueback to summary
public final float floatValue()

Implements abstract java.lang.Number.floatValue.

Implements org.jooq.types.Interval.floatValue.

Doc from java.lang.Number.floatValue.

Returns the value of the specified number as a float.

Returns:float

the numeric value represented by this object after conversion to type float.

Annotations
@Override
getDaysback to summary
public final int getDays()

Get the day-part of this interval

getDayToSecondback to summary
public final DayToSecond getDayToSecond()
getHoursback to summary
public final int getHours()

Get the hour-part of this interval

getMicroback to summary
public final int getMicro()

Get the (truncated) micro-part of this interval

getMilliback to summary
public final int getMilli()

Get the (truncated) milli-part of this interval

getMinutesback to summary
public final int getMinutes()

Get the minute-part of this interval

getMonthsback to summary
public final int getMonths()
getNanoback to summary
public final int getNano()

Get the nano-part of this interval

getSecondsback to summary
public final int getSeconds()

Get the second-part of this interval

getSignback to summary
public final int getSign()

Implements org.jooq.types.Interval.getSign.

Doc from org.jooq.types.Interval.getSign.

The sign of the interval

Returns:int

1 for positive or zero, -1 for negative

Annotations
@Override
getYearsback to summary
public final int getYears()
getYearToMonthback to summary
public final YearToMonth getYearToMonth()
hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Returns:int

a hash code value for this object.

Annotations
@Override
intValueback to summary
public final int intValue()

Implements abstract java.lang.Number.intValue.

Implements org.jooq.types.Interval.intValue.

Doc from java.lang.Number.intValue.

Returns the value of the specified number as an int.

Returns:int

the numeric value represented by this object after conversion to type int.

Annotations
@Override
longValueback to summary
public final long longValue()

Implements abstract java.lang.Number.longValue.

Implements org.jooq.types.Interval.longValue.

Doc from java.lang.Number.longValue.

Returns the value of the specified number as a long.

Returns:long

the numeric value represented by this object after conversion to type long.

Annotations
@Override
negback to summary
public final YearToSecond neg()

Implements org.jooq.types.Interval.neg.

Doc from org.jooq.types.Interval.neg.

Negate the interval (change its sign)

Annotations
@Override
parseDSback to summary
pack-priv static DayToSecond parseDS(Matcher matcher, int groupOffset)
parseYMback to summary
pack-priv static YearToMonth parseYM(Matcher matcher, int groupOffset)
toDurationback to summary
public final Duration toDuration()

Implements org.jooq.types.Interval.toDuration.

Doc from org.jooq.types.Interval.toDuration.

Get a duration representation of this interval.

There is an obvious Duration representation for DayToSecond intervals. If the interval contains YearMonth information, then the corresponding duration will use:

  • 1 year = 365.25 days
  • 1 month = 30 days

This corresponds to PostgreSQL's EXTRACT(EPOCH FROM my_interval) behaviour.

Annotations
@Override
toStringback to summary
public final String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object.

Returns:String

a string representation of the object.

Annotations
@Override
valueOfback to summary
public static YearToSecond valueOf(double milli)

Load a Double representation of a INTERVAL YEAR TO SECOND by assuming standard 24 hour days and 60 second minutes.

Parameters
milli:double

The number of milliseconds as a fractional number

Returns:YearToSecond

The loaded INTERVAL DAY TO SECOND object

valueOfback to summary
public static YearToSecond valueOf(Duration duration)

Transform a Duration into a YearToSecond interval by taking its number of milliseconds.

valueOfback to summary
public static YearToSecond valueOf(Period period)

Transform a Period into a YearToSecond interval.

valueOfback to summary
public static YearToSecond valueOf(String string)

Parse a string representation of a INTERVAL YEAR TO SECOND

Parameters
string:String

A string representation of the form [+|-][years]-[months] [+|-][days] [hours]:[minutes]:[seconds].[fractional seconds]

Returns:YearToSecond

The parsed YEAR TO SECOND object, or null if the string could not be parsed.