Class ParameterSet

java.lang.Object
org.opentrafficsim.base.parameters.ParameterSet
All Implemented Interfaces:
Parameters

public class ParameterSet extends Object implements Parameters
Implementation of Parameters with methods to initialize the set of parameters.

Copyright (c) 2013-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.

Author:
Alexander Verbraeck, Wouter Schakel
  • Constructor Details

    • 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 - input set to copy into the new Parameters object
  • Method Details

    • setParameter

      public <T> void setParameter(ParameterType<T> parameterType, T value) throws ParameterException
      Description copied from interface: Parameters
      Set parameter value of given parameter type.
      Specified by:
      setParameter in interface Parameters
      Type Parameters:
      T - class of value
      Parameters:
      parameterType - the parameter type
      value - new value for the parameter of type parameterType
      Throws:
      ParameterException - if the value does not comply with value type constraints or is claimed
    • setClaimedParameter

      public <T> void setClaimedParameter(ParameterType<T> parameterType, T value, Object key) throws ParameterException
      Description copied from interface: Parameters
      Set parameter value of given parameter type. This method claims setting the value by the key. No other key may be used to set the parameter.
      Specified by:
      setClaimedParameter in interface Parameters
      Type Parameters:
      T - class of value
      Parameters:
      parameterType - the parameter type
      value - new value for the parameter of type parameterType
      key - key object for unique right to set the parameter value
      Throws:
      ParameterException - if the value does not comply with value type constraints or is claimed by another key
    • setParameterResettable

      public <T> void setParameterResettable(ParameterType<T> parameterType, T value) throws ParameterException
      Description copied from interface: Parameters
      Set parameter value of given parameter type, store old value to allow a reset. This method ignores any claim on the parameter, and should always be followed by a reset.
      Specified by:
      setParameterResettable in interface Parameters
      Type Parameters:
      T - class of value
      Parameters:
      parameterType - the parameter type
      value - new value for the parameter of type parameterType
      Throws:
      ParameterException - if the value does not comply with value type constraints
    • resetParameter

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

      public <T> T getParameter(ParameterType<T> parameterType) throws ParameterException
      Description copied from interface: Parameters
      Get parameter of given type.
      Specified by:
      getParameter in interface Parameters
      Type Parameters:
      T - class of value
      Parameters:
      parameterType - the parameter type
      Returns:
      parameter of the requested type if it exists
      Throws:
      ParameterException - if the parameter was never set
    • getOptionalParameter

      public <T> Optional<T> getOptionalParameter(ParameterType<T> parameterType)
      Description copied from interface: Parameters
      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:
      getOptionalParameter in interface Parameters
      Type Parameters:
      T - type of parameter value
      Parameters:
      parameterType - parameter type
      Returns:
      parameter value, empty if not present
    • contains

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

      public Map<ParameterType<?>,Object> getParameters()
      Returns a safe copy of the parameters.
      Returns:
      a safe copy of the parameters, e.g., for printing
    • setDefaultParameter

      public <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 - the parameter to set the default value of
      Returns:
      this set of parameters (for method chaining)
      Throws:
      ParameterException - if the parameter type has no default value
    • setDefaultParameters

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

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

      public String toString()
      Overrides:
      toString in class Object