Class ValueServer


  • public class ValueServer
    extends java.lang.Object
    Generates values for use in simulation applications.

    How values are generated is determined by the mode property.

    Supported mode values are:

    • DIGEST_MODE -- uses an empirical distribution
    • REPLAY_MODE -- replays data from valuesFileURL
    • UNIFORM_MODE -- generates uniformly distributed random values with mean = mu
    • EXPONENTIAL_MODE -- generates exponentially distributed random values with mean = mu
    • GAUSSIAN_MODE -- generates Gaussian distributed random values with mean = mu and standard deviation = sigma
    • CONSTANT_MODE -- returns mu every time.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int CONSTANT_MODE
      Always return mu
      static int DIGEST_MODE
      Use empirical distribution.
      static int EXPONENTIAL_MODE
      Exponential random deviates with mean = μ.
      static int GAUSSIAN_MODE
      Gaussian random deviates with mean = μ, std dev = σ.
      static int REPLAY_MODE
      Replay data from valuesFilePath.
      static int UNIFORM_MODE
      Uniform random deviates with mean = μ.
    • Constructor Summary

      Constructors 
      Constructor Description
      ValueServer()
      Creates new ValueServer
      ValueServer​(RandomData randomData)
      Construct a ValueServer instance using a RandomData as its source of random data.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void closeReplayFile()
      Closes valuesFileURL after use in REPLAY_MODE.
      void computeDistribution()
      Computes the empirical distribution using values from the file in valuesFileURL, using the default number of bins.
      void computeDistribution​(int binCount)
      Computes the empirical distribution using values from the file in valuesFileURL and binCount bins.
      void fill​(double[] values)
      Fills the input array with values generated using getNext() repeatedly.
      double[] fill​(int length)
      Returns an array of length length with values generated using getNext() repeatedly.
      EmpiricalDistribution getEmpiricalDistribution()
      Getter for property empiricalDistribution.
      int getMode()
      Getter for property mode.
      double getMu()
      Getter for property mu.
      double getNext()
      Returns the next generated value, generated according to the mode value (see MODE constants).
      double getSigma()
      Getter for property sigma.
      java.net.URL getValuesFileURL()
      Getter for valuesFileURL
      void resetReplayFile()
      Resets REPLAY_MODE file pointer to the beginning of the valuesFileURL.
      void setMode​(int mode)
      Setter for property mode.
      void setMu​(double mu)
      Setter for property mu.
      void setSigma​(double sigma)
      Setter for property sigma.
      void setValuesFileURL​(java.lang.String url)
      Sets the valuesFileURL using a string URL representation
      void setValuesFileURL​(java.net.URL url)
      Sets the valuesFileURL
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • DIGEST_MODE

        public static final int DIGEST_MODE
        Use empirical distribution.
        See Also:
        Constant Field Values
      • REPLAY_MODE

        public static final int REPLAY_MODE
        Replay data from valuesFilePath.
        See Also:
        Constant Field Values
      • UNIFORM_MODE

        public static final int UNIFORM_MODE
        Uniform random deviates with mean = μ.
        See Also:
        Constant Field Values
      • EXPONENTIAL_MODE

        public static final int EXPONENTIAL_MODE
        Exponential random deviates with mean = μ.
        See Also:
        Constant Field Values
      • GAUSSIAN_MODE

        public static final int GAUSSIAN_MODE
        Gaussian random deviates with mean = μ, std dev = σ.
        See Also:
        Constant Field Values
    • Constructor Detail

      • ValueServer

        public ValueServer()
        Creates new ValueServer
      • ValueServer

        public ValueServer​(RandomData randomData)
        Construct a ValueServer instance using a RandomData as its source of random data.
        Parameters:
        randomData - the RandomData instance used to source random data
        Since:
        1.1
    • Method Detail

      • getNext

        public double getNext()
                       throws java.io.IOException
        Returns the next generated value, generated according to the mode value (see MODE constants).
        Returns:
        generated value
        Throws:
        java.io.IOException - in REPLAY_MODE if a file I/O error occurs
      • fill

        public void fill​(double[] values)
                  throws java.io.IOException
        Fills the input array with values generated using getNext() repeatedly.
        Parameters:
        values - array to be filled
        Throws:
        java.io.IOException - in REPLAY_MODE if a file I/O error occurs
      • fill

        public double[] fill​(int length)
                      throws java.io.IOException
        Returns an array of length length with values generated using getNext() repeatedly.
        Parameters:
        length - length of output array
        Returns:
        array of generated values
        Throws:
        java.io.IOException - in REPLAY_MODE if a file I/O error occurs
      • computeDistribution

        public void computeDistribution()
                                 throws java.io.IOException
        Computes the empirical distribution using values from the file in valuesFileURL, using the default number of bins.

        valuesFileURL must exist and be readable by *this at runtime.

        This method must be called before using getNext() with mode = DIGEST_MODE

        Throws:
        java.io.IOException - if an I/O error occurs reading the input file
      • computeDistribution

        public void computeDistribution​(int binCount)
                                 throws java.io.IOException
        Computes the empirical distribution using values from the file in valuesFileURL and binCount bins.

        valuesFileURL must exist and be readable by this process at runtime.

        This method must be called before using getNext() with mode = DIGEST_MODE

        Parameters:
        binCount - the number of bins used in computing the empirical distribution
        Throws:
        java.io.IOException - if an error occurs reading the input file
      • getMode

        public int getMode()
        Getter for property mode.
        Returns:
        Value of property mode.
      • setMode

        public void setMode​(int mode)
        Setter for property mode.
        Parameters:
        mode - New value of property mode.
      • getValuesFileURL

        public java.net.URL getValuesFileURL()
        Getter for valuesFileURL
        Returns:
        Value of property valuesFileURL.
      • setValuesFileURL

        public void setValuesFileURL​(java.lang.String url)
                              throws java.net.MalformedURLException
        Sets the valuesFileURL using a string URL representation
        Parameters:
        url - String representation for new valuesFileURL.
        Throws:
        java.net.MalformedURLException - if url is not well formed
      • setValuesFileURL

        public void setValuesFileURL​(java.net.URL url)
        Sets the valuesFileURL
        Parameters:
        url - New value of property valuesFileURL.
      • getEmpiricalDistribution

        public EmpiricalDistribution getEmpiricalDistribution()
        Getter for property empiricalDistribution.
        Returns:
        Value of property empiricalDistribution.
      • resetReplayFile

        public void resetReplayFile()
                             throws java.io.IOException
        Resets REPLAY_MODE file pointer to the beginning of the valuesFileURL.
        Throws:
        java.io.IOException - if an error occurs opening the file
      • closeReplayFile

        public void closeReplayFile()
                             throws java.io.IOException
        Closes valuesFileURL after use in REPLAY_MODE.
        Throws:
        java.io.IOException - if an error occurs closing the file
      • getMu

        public double getMu()
        Getter for property mu.
        Returns:
        Value of property mu.
      • setMu

        public void setMu​(double mu)
        Setter for property mu.
        Parameters:
        mu - New value of property mu.
      • getSigma

        public double getSigma()
        Getter for property sigma.
        Returns:
        Value of property sigma.
      • setSigma

        public void setSigma​(double sigma)
        Setter for property sigma.
        Parameters:
        sigma - New value of property sigma.