Class SingleBound<T extends java.lang.Number>

java.lang.Object
org.opentrafficsim.base.parameters.constraint.SingleBound<T>
Type Parameters:
T - value type
All Implemented Interfaces:
Constraint<T>
Direct Known Subclasses:
DualBound

public class SingleBound<T extends java.lang.Number>
extends java.lang.Object
implements Constraint<T>
Continuous constraints with a single bound. To allow both Double and AbstractDoubleScalar<?, ?> constraints, the generic type is restricted to Number. However, that also allows other subclasses of Number, 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 to Number.doubleValue(). To restrict the usage, the constructor is private and static factory methods for Double and AbstractDoubleScalar<?, ?> are supplied.

Copyright (c) 2013-2019 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 Aug 14, 2017
Author:
Alexander Verbraeck, Peter Knoppers, Wouter Schakel
  • Method Details

    • lowerInclusive

      public static final SingleBound<java.lang.Double> lowerInclusive​(double bound)
      Creates a lower inclusive bound; value >= bound.
      Parameters:
      bound - double; bound value
      Returns:
      lower inclusive bound
    • lowerInclusive

      public static final <T extends AbstractDoubleScalar<?,​ ?>> SingleBound<T> lowerInclusive​(T bound)
      Creates a lower inclusive bound; value >= bound.
      Type Parameters:
      T - value type
      Parameters:
      bound - T; bound value
      Returns:
      lower inclusive bound
    • lowerExclusive

      public static final SingleBound<java.lang.Double> lowerExclusive​(double bound)
      Creates a lower exclusive bound; value > bound.
      Parameters:
      bound - double; bound value
      Returns:
      lower exclusive bound
    • lowerExclusive

      public static final <T extends AbstractDoubleScalar<?,​ ?>> SingleBound<T> lowerExclusive​(T bound)
      Creates a lower exclusive bound; value > bound.
      Type Parameters:
      T - value type
      Parameters:
      bound - T; bound value
      Returns:
      lower exclusive bound
    • upperInclusive

      public static final SingleBound<java.lang.Double> upperInclusive​(double bound)
      Creates an upper inclusive bound; value <= bound.
      Parameters:
      bound - double; bound value
      Returns:
      upper inclusive bound
    • upperInclusive

      public static final <T extends AbstractDoubleScalar<?,​ ?>> SingleBound<T> upperInclusive​(T bound)
      Creates an upper inclusive bound; value <= bound.
      Type Parameters:
      T - value type
      Parameters:
      bound - T; bound value
      Returns:
      upper inclusive bound
    • upperExclusive

      public static final SingleBound<java.lang.Double> upperExclusive​(double bound)
      Creates an upper exclusive bound; value < bound.
      Parameters:
      bound - double; bound value
      Returns:
      upper exclusive bound
    • upperExclusive

      public static final <T extends AbstractDoubleScalar<?,​ ?>> SingleBound<T> upperExclusive​(T bound)
      Creates an upper exclusive bound; value < bound.
      Type Parameters:
      T - value type
      Parameters:
      bound - T; bound value
      Returns:
      upper exclusive bound
    • accept

      public boolean accept​(T value)
      Checks whether the value complies with constraints.
      Specified by:
      accept in interface Constraint<T extends java.lang.Number>
      Parameters:
      value - T; Value to check.
      Returns:
      Whether the value complies with constraints.
    • failMessage

      public java.lang.String failMessage()
      Returns a message for value failure, pointing to a parameter using '%s'.
      Specified by:
      failMessage in interface Constraint<T extends java.lang.Number>
      Returns:
      Message for value failure, pointing to a parameter using '%s'.
    • getBound

      public org.opentrafficsim.base.parameters.constraint.SingleBound.Bound getBound()
      Returns:
      bound.
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object