⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 storedresultsmodel.java

📁 一个用于排队系统仿真的开源软件,有非常形象的图象仿真过程!
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    public int[] getSystemResponseTimeMeasures() {
        int[] tmp = new int[systemResponseTime.size()];
        for (int i=0; i<tmp.length; i++)
            tmp[i] = ((Integer)systemResponseTime.get(i)).intValue();
        return tmp;
    }

    /**
     * Returns an array with the measureIndex of every system throughput measure
     *
     * @return an array with measures' index
     */
    public int[] getSystemThroughputMeasures() {
        int[] tmp = new int[systemThroughput.size()];
        for (int i=0; i<tmp.length; i++)
            tmp[i] = ((Integer)systemThroughput.get(i)).intValue();
        return tmp;
    }

    /**
     * Returns an array with the measureIndex of every customer number measure
     *
     * @return an array with measures' index
     */
    public int[] getCustomerNumberMeasures() {
        int[] tmp = new int[customerNumber.size()];
        for (int i=0; i<tmp.length; i++)
            tmp[i] = ((Integer)customerNumber.get(i)).intValue();
        return tmp;
    }

    /**
     * Returns if simulation has finished, so results are fixed
     * 
     * @return true iff simulation has finished
     */
    public boolean isSimulationFinished() {
        return true;
    }

    /**
     * Returns simulation polling interval. This is the time elapsed between two temp values.
     * 
     * @return simulation polling interval in seconds
     */
    public double getPollingInterval() {
        return pollingInterval;
    }

    /**
     * Returns current simulation progress time
     * @return current progress time
     */
    public double getProgressTime() {
        return 1.0;
    }

// --- Methods to populate data structure ----------------------------------------------------------------
    /**
     * Adds a new measure into this data structure.
     * @param name measure name
     * @param stationName reference station name
     * @param className reference class name
     * @param alpha measure alpha
     * @param precision measure precision
     * @param analyzedSamples number of analyzed samples
     * @param state state of the measure
     * @param type type of the measure
     */
    public void addMeasure(String name, String stationName, String className,
                       double alpha, double precision, int analyzedSamples, int state, int type) {
        Measure tmp = new Measure(name, stationName, className, alpha,precision, analyzedSamples, state, type);
        measures.add(tmp);
        names.put(name, tmp);
        // Adds measure index to the right Vector
        switch(type) {
            case SimConstants.QUEUE_TIME:
                queueTime.add(new Integer(measures.size()-1));
                break;
            case SimConstants.RESIDENCE_TIME:
                residenceTime.add(new Integer(measures.size()-1));
                break;
            case SimConstants.RESPONSE_TIME:
                responseTime.add(new Integer(measures.size()-1));
                break;
            case SimConstants.UTILIZATION:
                utilization.add(new Integer(measures.size()-1));
                break;
            case SimConstants.THROUGHPUT:
                throughput.add(new Integer(measures.size()-1));
                break;
            case SimConstants.QUEUE_LENGTH:
                queueLength.add(new Integer(measures.size()-1));
                break;
            case SimConstants.SYSTEM_RESPONSE_TIME:
                systemResponseTime.add(new Integer(measures.size()-1));
                break;
            case SimConstants.SYSTEM_JOB_NUMBER:
                customerNumber.add(new Integer(measures.size()-1));
                break;
            case SimConstants.SYSTEM_THROUGHPUT:
                systemThroughput.add(new Integer(measures.size()-1));
                break;
        }
    }

    /**
     * Adds a new sample to specified measure
     * @param measureName name of the measure
     * @param meanValue mean value of the sample
     * @param upperBound upper bound of the sample
     * @param lowerBound lower bound of the sample
     */
    public void addMeasureSample(String measureName, double meanValue, double upperBound, double lowerBound) {
        Measure tmp = (Measure)names.get(measureName);
        tmp.addSample(meanValue, upperBound, lowerBound);
    }

    /**
     * Sets measure polling interval
     * @param interval polling interval
     */
    public void setPollingInterval (double interval) {
        this.pollingInterval = interval;
    }
// -------------------------------------------------------------------------------------------------------

// --- Inner Classes--------------------------------------------------------------------------------------
    /**
     * Inner class to store parameters of each measure
     */ 
    protected class Measure {
        public String name, 
            stationName, 
            className;
        public Vector values;
        public double alpha,
            precision;
        public int analyzedSamples,
            state,
            type;
        /**
         * Construct a new Neasure object
         * @param name measure name
         * @param stationName reference station name
         * @param className reference class name
         * @param alpha measure alpha
         * @param precision measure precision
         * @param analyzedSamples number of analyzed samples
         * @param state state of the measure
         * @param type type of the measure
         */
        public Measure(String name, String stationName, String className,
                       double alpha, double precision, int analyzedSamples, int state, int type) {
            this.name = name;
            this.stationName = stationName;
            this.className = className;
            this.alpha = alpha;
            this.precision  = precision;
            this.analyzedSamples = analyzedSamples;
            this.state = state;
            this.type = type;
            values = new Vector();
        }

        /**
         * Adds a new sample to current measure
         * @param meanValue mean value of the sample
         * @param upperBound upper bound of the sample
         * @param lowerBound lower bound of the sample
         */
        public void addSample(double meanValue, double upperBound, double lowerBound) {
            MeasureValue val = new MeasureValue(meanValue, upperBound, lowerBound);
            values.add(val);
        }
    }

    /**
     * Inner class that implements Value interface
     */
    public class MeasureValue implements Value {
        private double mean, upper, lower;
        /**
         * Creates a new MeasureValue object
         * @param meanValue mean value of the sample
         * @param upperBound sample upper bound
         * @param lowerBound sample lower bound
         */
        public MeasureValue(double meanValue, double upperBound, double lowerBound) {
            mean = meanValue;
            upper = upperBound;
            lower = lowerBound;
        }
        public double getUpperBound() {
            return upper;
        }

        public double getLowerBound() {
            return lower;
        }

        public double getMeanValue() {
            return mean;
        }
    }
// -------------------------------------------------------------------------------------------------------

// --- Useless methods -----------------------------------------------------------------------------------
    /**
     * This feature is not required as loaded measures are static
     * @param listener listener to be set or null to unset previous one
     */
    public void setProgressTimeListener(MeasureDefinition.ProgressTimeListener listener) {
    }
    
    /**
     * This feature is not required as loaded measures are static
     * @param measureIndex index of the measure that this listener should listen
     * @param listener     listener to add or null to remove old one.
     */
    public void addMeasureListener(int measureIndex, MeasureDefinition.MeasureListener listener) {
    }
// -------------------------------------------------------------------------------------------------------
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -