Class DualBound<T extends Number>
- java.lang.Object
-
- org.opentrafficsim.base.parameters.constraint.SingleBound<T>
-
- org.opentrafficsim.base.parameters.constraint.DualBound<T>
-
- Type Parameters:
T
- value type
- All Implemented Interfaces:
Constraint<T>
public final class DualBound<T extends Number> extends SingleBound<T>
Continuous constraints with a dual bound. To allow bothDouble
andAbstractDoubleScalar<?, ?>
constraints, the generic type is restricted toNumber
. However, that also allows other subclasses ofNumber
, e.g.Integer
. Due to rounding and value limits from the type (e.g.Integer.MAX_VALEU
), bounds may not function correctly after a call toNumber.doubleValue()
. To restrict the usage, the constructor is private and static factory methods forDouble
andAbstractDoubleScalar<?, ?>
are supplied.Copyright (c) 2013-2020 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.- Version:
- $Revision$, $LastChangedDate$, by $Author$, initial version 8 sep. 2017
- Author:
- Alexander Verbraeck, Peter Knoppers, Wouter Schakel
-
-
Field Summary
Fields Modifier and Type Field Description static DualBound<Number>
UNITINTERVAL
Standard dual bound on the unit interval [0...1].
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
accept(T value)
Checks whether the value complies with constraints.static DualBound<Double>
closed(double lowerBound, double upperBound)
Creates a dual bound including the bounds;lowerBound <= value <= upperBound
.static <T extends AbstractDoubleScalar<?,?>>
DualBound<T>closed(T lowerBound, T upperBound)
Creates a dual bound including the bounds;lowerBound <= value <= upperBound
.static DualBound<Double>
leftClosedRightOpen(double lowerBound, double upperBound)
Creates a dual bound including the lower bound and excluding the upper bound;lowerBound <= value < upperBound
.static <T extends AbstractDoubleScalar<?,?>>
DualBound<T>leftClosedRightOpen(T lowerBound, T upperBound)
Creates a dual bound including the lower bound and excluding the upper bound;lowerBound <= value < upperBound
.static DualBound<Double>
leftOpenRightClosed(double lowerBound, double upperBound)
Creates a dual bound excluding the lower bound and including the upper bound;lowerBound < value <= upperBound
.static <T extends AbstractDoubleScalar<?,?>>
DualBound<T>leftOpenRightClosed(T lowerBound, T upperBound)
Creates a dual bound excluding the lower bound and including the upper bound;lowerBound < value <= upperBound
.static DualBound<Double>
open(double lowerBound, double upperBound)
Creates a dual bound excluding the bounds;lowerBound < value < upperBound
.static <T extends AbstractDoubleScalar<?,?>>
DualBound<T>open(T lowerBound, T upperBound)
Creates a dual bound excluding the bounds;lowerBound < value < upperBound
.String
toString()
-
Methods inherited from class org.opentrafficsim.base.parameters.constraint.SingleBound
failMessage, getBound, lowerExclusive, lowerExclusive, lowerInclusive, lowerInclusive, upperExclusive, upperExclusive, upperInclusive, upperInclusive
-
-
-
-
Method Detail
-
closed
public static DualBound<Double> closed(double lowerBound, double upperBound)
Creates a dual bound including the bounds;lowerBound <= value <= upperBound
. Bounds may be equal.- Parameters:
lowerBound
- double; lower bound valueupperBound
- double; upper bound value- Returns:
- closed dual bound
-
closed
public static <T extends AbstractDoubleScalar<?,?>> DualBound<T> closed(T lowerBound, T upperBound)
Creates a dual bound including the bounds;lowerBound <= value <= upperBound
.- Type Parameters:
T
- value type- Parameters:
lowerBound
- T; lower bound valueupperBound
- T; upper bound value- Returns:
- closed dual bound
-
open
public static DualBound<Double> open(double lowerBound, double upperBound)
Creates a dual bound excluding the bounds;lowerBound < value < upperBound
.- Parameters:
lowerBound
- double; lower bound valueupperBound
- double; upper bound value- Returns:
- open dual bound
-
open
public static <T extends AbstractDoubleScalar<?,?>> DualBound<T> open(T lowerBound, T upperBound)
Creates a dual bound excluding the bounds;lowerBound < value < upperBound
.- Type Parameters:
T
- value type- Parameters:
lowerBound
- T; lower bound valueupperBound
- T; upper bound value- Returns:
- open dual bound
-
leftOpenRightClosed
public static DualBound<Double> leftOpenRightClosed(double lowerBound, double upperBound)
Creates a dual bound excluding the lower bound and including the upper bound;lowerBound < value <= upperBound
.- Parameters:
lowerBound
- double; lower bound valueupperBound
- double; upper bound value- Returns:
- dual bound; excluding the lower bound and including the upper bound
-
leftOpenRightClosed
public static <T extends AbstractDoubleScalar<?,?>> DualBound<T> leftOpenRightClosed(T lowerBound, T upperBound)
Creates a dual bound excluding the lower bound and including the upper bound;lowerBound < value <= upperBound
.- Type Parameters:
T
- value type- Parameters:
lowerBound
- T; lower bound valueupperBound
- T; upper bound value- Returns:
- dual bound; excluding the lower bound and including the upper bound
-
leftClosedRightOpen
public static DualBound<Double> leftClosedRightOpen(double lowerBound, double upperBound)
Creates a dual bound including the lower bound and excluding the upper bound;lowerBound <= value < upperBound
.- Parameters:
lowerBound
- double; lower bound valueupperBound
- double; upper bound value- Returns:
- dual bound; including the lower bound and excluding the upper bound
-
leftClosedRightOpen
public static <T extends AbstractDoubleScalar<?,?>> DualBound<T> leftClosedRightOpen(T lowerBound, T upperBound)
Creates a dual bound including the lower bound and excluding the upper bound;lowerBound <= value < upperBound
.- Type Parameters:
T
- value type- Parameters:
lowerBound
- T; lower bound valueupperBound
- T; upper bound value- Returns:
- dual bound; including the lower bound and excluding the upper bound
-
accept
public boolean accept(T value)
Checks whether the value complies with constraints.- Specified by:
accept
in interfaceConstraint<T extends Number>
- Overrides:
accept
in classSingleBound<T extends Number>
- Parameters:
value
- T; Value to check.- Returns:
- Whether the value complies with constraints.
-
toString
public String toString()
- Overrides:
toString
in classSingleBound<T extends Number>
-
-