Class ParameterSet

  • All Implemented Interfaces:
    java.io.Serializable, Parameters

    public class ParameterSet
    extends java.lang.Object
    implements Parameters, java.io.Serializable
    Implementation of Parameters with methods to initialize the set of parameters.

    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 Apr 13, 2016
    Author:
    Alexander Verbraeck, Wouter Schakel
    See Also:
    Serialized Form
    • Constructor Detail

      • ParameterSet

        public ParameterSet()
        Construct a new, empty Parameters set.
      • ParameterSet

        public ParameterSet​(Parameters parameters)
        Constructor which creates a copy of the input set.
        Parameters:
        parameters - Parameters; input set to copy into the new Parameters object
    • Method Detail

      • setParameter

        public final <T> void setParameter​(ParameterType<T> parameterType,
                                           T value)
                                    throws ParameterException
        Set parameter value of given parameter type.
        Specified by:
        setParameter in interface Parameters
        Type Parameters:
        T - Class of value.
        Parameters:
        parameterType - ParameterType<T>; the parameter type.
        value - T; new value for the parameter of type parameterType.
        Throws:
        ParameterException - If the value does not comply with value type constraints.
      • setParameterResettable

        public final <T> void setParameterResettable​(ParameterType<T> parameterType,
                                                     T value)
                                              throws ParameterException
        Set parameter value of given parameter type, store old value to allow a reset.
        Specified by:
        setParameterResettable in interface Parameters
        Type Parameters:
        T - Class of value.
        Parameters:
        parameterType - ParameterType<T>; the parameter type.
        value - T; new value for the parameter of type parameterType.
        Throws:
        ParameterException - If the value does not comply with value type constraints.
      • resetParameter

        public final void resetParameter​(ParameterType<?> parameterType)
                                  throws ParameterException
        Resets the parameter value to the value from before the last set. This goes only a single value back.
        Specified by:
        resetParameter in interface Parameters
        Parameters:
        parameterType - ParameterType<?>; the parameter type.
        Throws:
        ParameterException - If the parameter was never set.
      • getParameter

        public <T> T getParameter​(ParameterType<T> parameterType)
                           throws ParameterException
        Get parameter of given type.
        Specified by:
        getParameter in interface Parameters
        Type Parameters:
        T - Class of value.
        Parameters:
        parameterType - ParameterType<T>; the parameter type.
        Returns:
        T; parameter of the requested type if it exists
        Throws:
        ParameterException - If the parameter was never set.
      • getParameterOrNull

        public final <T> T getParameterOrNull​(ParameterType<T> parameterType)
        Returns a parameter value, or null if not present. This can be used to prevent frequent calls to both contains() and getParameter() in performance critical code.
        Specified by:
        getParameterOrNull in interface Parameters
        Type Parameters:
        T - type of parameter value
        Parameters:
        parameterType - ParameterType<T>; parameter type
        Returns:
        parameter value, or null if not present
      • contains

        public final boolean contains​(ParameterType<?> parameterType)
        Indicate whether the given parameter type has been set.
        Specified by:
        contains in interface Parameters
        Parameters:
        parameterType - ParameterType<?>; the parameter type to check
        Returns:
        boolean; true if parameterType has been set; false if parameterType has not been set
      • getParameters

        public final java.util.Map<ParameterType<?>,​java.lang.Object> getParameters()
        Returns a safe copy of the parameters.
        Returns:
        Map<AbstractParameterType<?>>; a safe copy of the parameters, e.g., for printing
      • setDefaultParameter

        public final <T> ParameterSet setDefaultParameter​(ParameterType<T> parameter)
                                                   throws ParameterException
        Sets the default value of a parameter. Default value sets are not resettable.
        Type Parameters:
        T - Class of the value
        Parameters:
        parameter - ParameterType<T>; the parameter to set the default value of
        Returns:
        Parameters; this set of parameters (for method chaining)
        Throws:
        ParameterException - if the parameter type has no default value
      • setDefaultParameters

        public final ParameterSet setDefaultParameters​(java.lang.Class<?> clazz)
        Sets the default values of all accessible parameters defined in the given class. Default value sets are not resettable.
        Parameters:
        clazz - Class<?>; class with parameters
        Returns:
        Parameters; this set of parameters (for method chaining)
      • setAllIn

        public final void setAllIn​(Parameters params)
        Sets the parameters of this set in the given set.
        Specified by:
        setAllIn in interface Parameters
        Parameters:
        params - Parameters; parameters to set the values in
      • toString

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