org.threeten.bp.jdk8
Class DefaultInterfaceTemporal

java.lang.Object
  extended by org.threeten.bp.jdk8.DefaultInterfaceTemporalAccessor
      extended by org.threeten.bp.jdk8.DefaultInterfaceTemporal
All Implemented Interfaces:
Temporal, TemporalAccessor
Direct Known Subclasses:
ChronoLocalDate, ChronoLocalDateTime, ChronoZonedDateTime, OffsetDateTime

public abstract class DefaultInterfaceTemporal
extends DefaultInterfaceTemporalAccessor
implements Temporal

A temporary class providing implementations that will become default interface methods once integrated into JDK 8.


Constructor Summary
DefaultInterfaceTemporal()
           
 
Method Summary
 Temporal minus(long amountToSubtract, TemporalUnit unit)
          Returns an object of the same type as this object with the specified period subtracted.
 Temporal minus(TemporalAmount amount)
          Returns an object of the same type as this object with an amount subtracted.
 Temporal plus(TemporalAmount amount)
          Returns an object of the same type as this object with an amount added.
 Temporal with(TemporalAdjuster adjuster)
          Returns an adjusted object of the same type as this object with the adjustment made.
 
Methods inherited from class org.threeten.bp.jdk8.DefaultInterfaceTemporalAccessor
get, query, range
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.threeten.bp.temporal.Temporal
isSupported, plus, until, with
 
Methods inherited from interface org.threeten.bp.temporal.TemporalAccessor
get, getLong, isSupported, query, range
 

Constructor Detail

DefaultInterfaceTemporal

public DefaultInterfaceTemporal()
Method Detail

with

public Temporal with(TemporalAdjuster adjuster)
Description copied from interface: Temporal
Returns an adjusted object of the same type as this object with the adjustment made.

This adjusts this date-time according to the rules of the specified adjuster. A simple adjuster might simply set the one of the fields, such as the year field. A more complex adjuster might set the date to the last day of the month. A selection of common adjustments is provided in TemporalAdjusters. These include finding the "last day of the month" and "next Wednesday". The adjuster is responsible for handling special cases, such as the varying lengths of month and leap years.

Some example code indicating how and why this method is used:

  date = date.with(Month.JULY);        // most key classes implement TemporalAdjuster
  date = date.with(lastDayOfMonth());  // static import from TemporalAdjusters
  date = date.with(next(WEDNESDAY));   // static import from TemporalAdjusters and DayOfWeek
 

Specification for implementors

Implementations must not alter either this object. Instead, an adjusted copy of the original must be returned. This provides equivalent, safe behavior for immutable and mutable implementations.

Specified by:
with in interface Temporal
Parameters:
adjuster - the adjuster to use, not null
Returns:
an object of the same type with the specified adjustment made, not null

plus

public Temporal plus(TemporalAmount amount)
Description copied from interface: Temporal
Returns an object of the same type as this object with an amount added.

This adjusts this temporal, adding according to the rules of the specified amount. The amount is typically a Period but may be any other type implementing the TemporalAmount interface, such as Duration.

Some example code indicating how and why this method is used:

  date = date.plus(period);                  // add a Period instance
  date = date.plus(duration);                // add a Duration instance
  date = date.plus(workingDays(6));          // example user-written workingDays method
 

Note that calling plus followed by minus is not guaranteed to return the same date-time.

Specification for implementors

Implementations must not alter either this object. Instead, an adjusted copy of the original must be returned. This provides equivalent, safe behavior for immutable and mutable implementations.

Specified by:
plus in interface Temporal
Parameters:
amount - the amount to add, not null
Returns:
an object of the same type with the specified adjustment made, not null

minus

public Temporal minus(TemporalAmount amount)
Description copied from interface: Temporal
Returns an object of the same type as this object with an amount subtracted.

This adjusts this temporal, subtracting according to the rules of the specified amount. The amount is typically a Period but may be any other type implementing the TemporalAmount interface, such as Duration.

Some example code indicating how and why this method is used:

  date = date.minus(period);                  // subtract a Period instance
  date = date.minus(duration);                // subtract a Duration instance
  date = date.minus(workingDays(6));          // example user-written workingDays method
 

Note that calling plus followed by minus is not guaranteed to return the same date-time.

Specification for implementors

Implementations must not alter either this object. Instead, an adjusted copy of the original must be returned. This provides equivalent, safe behavior for immutable and mutable implementations.

Specified by:
minus in interface Temporal
Parameters:
amount - the amount to subtract, not null
Returns:
an object of the same type with the specified adjustment made, not null

minus

public Temporal minus(long amountToSubtract,
                      TemporalUnit unit)
Description copied from interface: Temporal
Returns an object of the same type as this object with the specified period subtracted.

This method returns a new object based on this one with the specified period subtracted. For example, on a LocalDate, this could be used to subtract a number of years, months or days. The returned object will have the same observable type as this object.

In some cases, changing a field is not fully defined. For example, if the target object is a date representing the 31st March, then subtracting one month would be unclear. In cases like this, the field is responsible for resolving the result. Typically it will choose the previous valid date, which would be the last valid day of February in this example.

If the implementation represents a date-time that has boundaries, such as LocalTime, then the permitted units must include the boundary unit, but no multiples of the boundary unit. For example, LocalTime must accept DAYS but not WEEKS or MONTHS.

Specification for implementors

Implementations must behave in a manor equivalent to the default method behavior.

Implementations must not alter either this object or the specified temporal object. Instead, an adjusted copy of the original must be returned. This provides equivalent, safe behavior for immutable and mutable implementations.

Specified by:
minus in interface Temporal
Parameters:
amountToSubtract - the amount of the specified unit to subtract, may be negative
unit - the unit of the period to subtract, not null
Returns:
an object of the same type with the specified period subtracted, not null


Copyright © 2007–2017 ThreeTen.org. All rights reserved.