ParameterTypeNumeric.java

  1. package org.opentrafficsim.base.parameters;

  2. import java.io.Serializable;

  3. import org.opentrafficsim.base.parameters.constraint.Constraint;
  4. //import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

  5. /**
  6.  * Wrapper class for parameters of any quantity in JUnits, or double, integer, etc.
  7.  * <p>
  8.  * Copyright (c) 2013-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
  9.  * BSD-style license. See <a href="https://opentrafficsim.org/docs/license.html">OpenTrafficSim License</a>.
  10.  * </p>
  11.  * @author <a href="https://github.com/averbraeck">Alexander Verbraeck</a>
  12.  * @author <a href="https://github.com/wjschakel">Wouter Schakel</a>
  13.  * @author <a href="https://github.com/peter-knoppers">Peter Knoppers</a>
  14.  * @param <T> Class of the value.
  15.  */
  16. public abstract class ParameterTypeNumeric<T extends Number> extends ParameterType<T> implements Serializable
  17. {

  18.     /** */
  19.     private static final long serialVersionUID = 20160400L;

  20.     /**
  21.      * Constructor without default value and check.
  22.      * @param id Short name of parameter.
  23.      * @param description Parameter description or full name.
  24.      * @param valueClass Class of the value.
  25.      */
  26.     public ParameterTypeNumeric(final String id, final String description, final Class<T> valueClass)
  27.     {
  28.         super(id, description, valueClass);
  29.     }

  30.     /**
  31.      * Constructor with default value, without check.
  32.      * @param id Short name of parameter.
  33.      * @param description Parameter description or full name.
  34.      * @param valueClass Class of the value.
  35.      * @param defaultValue Default value.
  36.      */
  37.     public ParameterTypeNumeric(final String id, final String description, final Class<T> valueClass, final T defaultValue)
  38.     {
  39.         super(id, description, valueClass, defaultValue);
  40.     }

  41.     /**
  42.      * Constructor without default value, with check.
  43.      * @param id Short name of parameter.
  44.      * @param description Parameter description or full name.
  45.      * @param valueClass Class of the value.
  46.      * @param constraint Constraint for parameter values.
  47.      */
  48.     public ParameterTypeNumeric(final String id, final String description, final Class<T> valueClass,
  49.             final Constraint<? super T> constraint)
  50.     {
  51.         super(id, description, valueClass, constraint);
  52.     }

  53.     /**
  54.      * Constructor with default value and check.
  55.      * @param id Short name of parameter.
  56.      * @param description Parameter description or full name.
  57.      * @param valueClass Class of the value.
  58.      * @param defaultValue Default value.
  59.      * @param constraint Constraint for parameter values.
  60.      */
  61.     public ParameterTypeNumeric(final String id, final String description, final Class<T> valueClass, final T defaultValue,
  62.             final Constraint<? super T> constraint)
  63.     {
  64.         super(id, description, valueClass, defaultValue, constraint);
  65.     }

  66.     @Override
  67.     public String printValue(final Parameters parameters) throws ParameterException
  68.     {
  69.         return parameters.getParameter(this).toString();
  70.     }

  71.     @Override
  72.     public String toString()
  73.     {
  74.         return "ParameterTypeNumeric [id=" + getId() + ", description=" + getDescription() + "]";
  75.     }

  76. }