• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
3  *
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are met:
8  *
9  *  * Redistributions of source code must retain the above copyright notice,
10  *    this list of conditions and the following disclaimer.
11  *
12  *  * Redistributions in binary form must reproduce the above copyright notice,
13  *    this list of conditions and the following disclaimer in the documentation
14  *    and/or other materials provided with the distribution.
15  *
16  *  * Neither the name of JSR-310 nor the names of its contributors
17  *    may be used to endorse or promote products derived from this software
18  *    without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 package org.threeten.bp.jdk8;
33 
34 import org.threeten.bp.temporal.Temporal;
35 import org.threeten.bp.temporal.TemporalAdjuster;
36 import org.threeten.bp.temporal.TemporalAmount;
37 import org.threeten.bp.temporal.TemporalUnit;
38 
39 /**
40  * A temporary class providing implementations that will become default interface
41  * methods once integrated into JDK 8.
42  */
43 public abstract class DefaultInterfaceTemporal
44         extends DefaultInterfaceTemporalAccessor
45         implements Temporal {
46 
47     @Override
with(TemporalAdjuster adjuster)48     public Temporal with(TemporalAdjuster adjuster) {
49         return adjuster.adjustInto(this);
50     }
51 
52     @Override
plus(TemporalAmount amount)53     public Temporal plus(TemporalAmount amount) {
54         return amount.addTo(this);
55     }
56 
57     @Override
minus(TemporalAmount amount)58     public Temporal minus(TemporalAmount amount) {
59         return amount.subtractFrom(this);
60     }
61 
62     @Override
minus(long amountToSubtract, TemporalUnit unit)63     public Temporal minus(long amountToSubtract, TemporalUnit unit) {
64         return (amountToSubtract == Long.MIN_VALUE ? plus(Long.MAX_VALUE, unit).plus(1, unit) : plus(-amountToSubtract, unit));
65     }
66 
67 }
68