AbstractDiscreteDistScalar.java

  1. package org.opentrafficsim.core.units.distributions;

  2. import nl.tudelft.simulation.jstats.distributions.DistDiscrete;
  3. import nl.tudelft.simulation.jstats.distributions.DistDiscreteConstant;
  4. import nl.tudelft.simulation.jstats.streams.Java2Random;
  5. import nl.tudelft.simulation.jstats.streams.StreamInterface;

  6. import org.djunits.unit.Unit;

  7. /**
  8.  * Discrete distribution with unit.
  9.  * <p>
  10.  * Copyright (c) 2013-2015 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
  11.  * BSD-style license. See <a href="http://opentrafficsim.org/docs/license.html">OpenTrafficSim License</a>.
  12.  * <p>
  13.  * $LastChangedDate: 2015-07-26 01:01:13 +0200 (Sun, 26 Jul 2015) $, @version $Revision: 1155 $, by $Author: averbraeck $,
  14.  * initial version Feb 2, 2015 <br>
  15.  * @author <a href="http://www.tbm.tudelft.nl/averbraeck">Alexander Verbraeck</a>
  16.  */
  17. public abstract class AbstractDiscreteDistScalar
  18. {
  19.     /** The wrapped distribution function. */
  20.     private final DistDiscrete distribution;

  21.     /** The unit. */
  22.     private final Unit<?> unit;

  23.     /** The dummy stream for the constant values. Is never really used. */
  24.     private static final StreamInterface DUMMY_STREAM = new Java2Random();

  25.     /**
  26.      * @param distribution the wrapped distribution function.
  27.      * @param unit the unit.
  28.      */
  29.     protected AbstractDiscreteDistScalar(final DistDiscrete distribution, final Unit<?> unit)
  30.     {
  31.         super();
  32.         this.distribution = distribution;
  33.         this.unit = unit;
  34.     }

  35.     /**
  36.      * @param constant the constant value.
  37.      * @param unit the unit.
  38.      */
  39.     protected AbstractDiscreteDistScalar(final long constant, final Unit<?> unit)
  40.     {
  41.         this(new DistDiscreteConstant(DUMMY_STREAM, constant), unit);
  42.     }

  43.     /**
  44.      * @return distribution.
  45.      */
  46.     public final DistDiscrete getDistribution()
  47.     {
  48.         return this.distribution;
  49.     }

  50.     /**
  51.      * @return the unit
  52.      */
  53.     public final Unit<?> getUnit()
  54.     {
  55.         return this.unit;
  56.     }

  57.     /** {@inheritDoc} */
  58.     @Override
  59.     @SuppressWarnings("checkstyle:designforextension")
  60.     public String toString()
  61.     {
  62.         return "DiscreteDistScalar [distribution=" + this.distribution + ", unit=" + this.unit + "]";
  63.     }
  64. }