Class SingleBound<T extends java.lang.Number>

  • 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-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 Aug 14, 2017
    Author:
    Alexander Verbraeck, Peter Knoppers, Wouter Schakel
    • Method Detail

      • 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'.
      • toString

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