public class ScaledDurationField extends DecoratedDurationField
ScaledDurationField is thread-safe and immutable.
PreciseDurationField
,
Serialized FormConstructor and Description |
---|
ScaledDurationField(DurationField field,
DurationFieldType type,
int scalar)
Constructor
|
Modifier and Type | Method and Description |
---|---|
long |
add(long instant,
int value)
Adds a duration value (which may be negative) to the instant.
|
long |
add(long instant,
long value)
Adds a duration value (which may be negative) to the instant.
|
boolean |
equals(java.lang.Object obj)
Compares this duration field to another.
|
int |
getDifference(long minuendInstant,
long subtrahendInstant)
Computes the difference between two instants, as measured in the units
of this field.
|
long |
getDifferenceAsLong(long minuendInstant,
long subtrahendInstant)
Computes the difference between two instants, as measured in the units
of this field.
|
long |
getMillis(int value)
Get the millisecond duration of this field from its value, which is
approximate if this field is imprecise.
|
long |
getMillis(int value,
long instant)
Get the millisecond duration of this field from its value relative to an
instant.
|
long |
getMillis(long value)
Get the millisecond duration of this field from its value, which is
approximate if this field is imprecise.
|
long |
getMillis(long value,
long instant)
Get the millisecond duration of this field from its value relative to an
instant.
|
int |
getScalar()
Returns the scalar applied, in the field's units.
|
long |
getUnitMillis()
Returns the amount of milliseconds per unit value of this field.
|
int |
getValue(long duration)
Get the value of this field from the milliseconds, which is approximate
if this field is imprecise.
|
int |
getValue(long duration,
long instant)
Get the value of this field from the milliseconds relative to an
instant.
|
long |
getValueAsLong(long duration)
Get the value of this field from the milliseconds, which is approximate
if this field is imprecise.
|
long |
getValueAsLong(long duration,
long instant)
Get the value of this field from the milliseconds relative to an
instant.
|
int |
hashCode()
Gets a hash code for this instance.
|
getWrappedField, isPrecise
compareTo, getName, getType, isSupported, toString
subtract, subtract
public ScaledDurationField(DurationField field, DurationFieldType type, int scalar)
field
- the field to wrap, like "year()".type
- the type this field will actually usescalar
- scalar, such as 100 years in a centuryjava.lang.IllegalArgumentException
- if scalar is zero or one.public int getValue(long duration)
BaseDurationField
getValue
in class BaseDurationField
duration
- the milliseconds to query, which may be negativepublic long getValueAsLong(long duration)
BaseDurationField
getValueAsLong
in class BaseDurationField
duration
- the milliseconds to query, which may be negativepublic int getValue(long duration, long instant)
BaseDurationField
If the milliseconds is positive, then the instant is treated as a "start instant". If negative, the instant is treated as an "end instant".
The default implementation returns
Utils.safeToInt(getAsLong(millisDuration, instant))
.
getValue
in class BaseDurationField
duration
- the milliseconds to query, which may be negativeinstant
- the start instant to calculate relative topublic long getValueAsLong(long duration, long instant)
DurationField
If the millisecond duration is positive, then the instant is treated as a "start instant". If negative, the instant is treated as an "end instant".
getValueAsLong
in class DecoratedDurationField
duration
- the milliseconds to query, which may be negativeinstant
- the start instant to calculate relative topublic long getMillis(int value)
BaseDurationField
getMillis
in class BaseDurationField
value
- the value of the field, which may be negativepublic long getMillis(long value)
BaseDurationField
getMillis
in class BaseDurationField
value
- the value of the field, which may be negativepublic long getMillis(int value, long instant)
DurationField
If the value is positive, then the instant is treated as a "start instant". If negative, the instant is treated as an "end instant".
getMillis
in class DecoratedDurationField
value
- the value of the field, which may be negativeinstant
- the instant to calculate relative topublic long getMillis(long value, long instant)
DurationField
If the value is positive, then the instant is treated as a "start instant". If negative, the instant is treated as an "end instant".
getMillis
in class DecoratedDurationField
value
- the value of the field, which may be negativeinstant
- the instant to calculate relative topublic long add(long instant, int value)
DurationField
add
in class DecoratedDurationField
instant
- the milliseconds from 1970-01-01T00:00:00Z to add tovalue
- the value to add, in the units of the fieldpublic long add(long instant, long value)
DurationField
add
in class DecoratedDurationField
instant
- the milliseconds from 1970-01-01T00:00:00Z to add tovalue
- the value to add, in the units of the fieldpublic int getDifference(long minuendInstant, long subtrahendInstant)
DurationField
long instant = ... int v = ... int age = getDifference(add(instant, v), instant);The value 'age' is the same as the value 'v'.
getDifference
in class BaseDurationField
minuendInstant
- the milliseconds from 1970-01-01T00:00:00Z to
subtract fromsubtrahendInstant
- the milliseconds from 1970-01-01T00:00:00Z to
subtract off the minuendpublic long getDifferenceAsLong(long minuendInstant, long subtrahendInstant)
DurationField
long instant = ... long v = ... long age = getDifferenceAsLong(add(instant, v), instant);The value 'age' is the same as the value 'v'.
getDifferenceAsLong
in class DecoratedDurationField
minuendInstant
- the milliseconds from 1970-01-01T00:00:00Z to
subtract fromsubtrahendInstant
- the milliseconds from 1970-01-01T00:00:00Z to
subtract off the minuendpublic long getUnitMillis()
DurationField
For imprecise fields, the unit size is variable, and so this method returns a suitable average value.
getUnitMillis
in class DecoratedDurationField
DurationField.isPrecise()
public int getScalar()
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
obj
- the object to compare topublic int hashCode()
hashCode
in class java.lang.Object
Copyright © 2010 - 2020 Adobe. All Rights Reserved