EMMA Coverage Report (generated Sun Feb 05 10:43:15 CET 2012)
[all classes][desmoj.core.simulator]

COVERAGE SUMMARY FOR SOURCE FILE [QueueListRandom.java]

nameclass, %method, %block, %line, %
QueueListRandom.java0%   (0/1)0%   (0/3)0%   (0/60)0%   (0/25)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class QueueListRandom0%   (0/1)0%   (0/3)0%   (0/60)0%   (0/25)
QueueListRandom (): void 0%   (0/1)0%   (0/14)0%   (0/5)
insert (Entity): void 0%   (0/1)0%   (0/41)0%   (0/18)
setSeed (long): void 0%   (0/1)0%   (0/5)0%   (0/2)

1package desmoj.core.simulator;
2 
3import java.util.Random;
4 
5/**
6 * Contains the implementation with the java.util.LinkedList to represent queueing
7 * functionality. The entities are queued in random order. The statistic data of the queue will be
8 * stored in a <code>QueueBased</code> object. The <code>QueueListStandardFifo</code>
9 * has a reference to its <code>QueueBased</code> object. This class needs a 
10 * reference to a subclass of QueueBased to update the queue statistics.
11 * It is used in many kinds of queue implementations i.e. in classes
12 * <code>Queue</code> and <code>ProcessQueue</code>.
13 *
14 * @see QueueList
15 * @see QueueBased
16 * @see Queue
17 * @see ProcessQueue
18 * 
19 * @version DESMO-J, Ver. 2.3.3 copyright (c) 2011
20 * @author Johannes Goebel
21 * @author based on ideas from Soenke Claassen, Tim Lechler, Justin Neumann
22 * 
23 * Licensed under the Apache License, Version 2.0 (the "License");
24 * you may not use this file except in compliance with the License. You
25 * may obtain a copy of the License at
26 * http://www.apache.org/licenses/LICENSE-2.0
27 *
28 * Unless required by applicable law or agreed to in writing, software
29 * distributed under the License is distributed on an "AS IS"
30 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
31 * or implied. See the License for the specific language governing
32 * permissions and limitations under the License.
33 *
34 */
35public class QueueListRandom<E extends Entity> extends QueueListStandard<E> implements
36                java.beans.PropertyChangeListener
37        
38        {
39    
40    /**
41     * Uses the java.util.WeakHashMap functionalities to link entities with their entry time.
42     */
43    private Random _positionGenerator;
44 
45        /**
46         * Constructs an empty <code>QueueListStandardFifo</code> with no reference to its
47         * client QueueBased. This no-arg constructor is necessary to instantiate an
48         * object of this class by calling the
49         * <code>java.lang.Class.newInstance()</code> method. The reference to the
50         * QueueBased object making use of this queue-functionality must be provided
51         * later by calling the setQueueBased() method. The initial length is always
52         * zero.
53         */
54        public QueueListRandom()
55        {        
56                super();
57 
58                // set the abbreviation for this kind of queueing discipline
59                this.abbreviation = "RANDOM";
60                
61                // set position generator
62                this._positionGenerator = new Random();
63 
64                // we don't know the client queue yet.
65                // Must be provided later by calling the setQueueBased() method
66                clientQ = null;
67 
68        }
69 
70        /**
71         * Adds a new Entity to the QueueListStandardFifo. The position on which 
72         * the entity is inserted is randomly generated, disregarding priorities.
73         * 
74         * @param e
75         *            Entity : The Entity to add to the QueueListStandardFifo
76         */
77        public void insert(E e) 
78        {
79                
80                 if (e == null) { // check for null reference
81                        sendWarning(
82                                        "Can not insert entity. Command ignored.",
83                                        "Class: QueueListRandom Method: insert(Entity e).",
84                                        "The Entity reference given as parameter is a null reference.",
85                                        "Be sure to only use valid references.");
86                        return;
87                }
88 
89                if (contains(e)) { // entity must not be contained twice in queue
90                        sendWarning("Can not insert entity. Command ignored.",
91                                        "Class: QueueListRandom Method: insert(Entity e).",
92                                        "The Entity given as parameter is already enqueued.",
93                                        "Make sure the entity is not enqueued here by calling "
94                                                        + "method 'contains(Entity e)'.");
95                        return;
96                }
97                
98                int position = this._positionGenerator.nextInt(this.size() + 1);
99            // index between 0 (first) and size() (one position after the last Entity at index size()-1)
100                
101        queuelist.add(position, e);
102        e.addQueueBased(this.clientQ); // sets entity's queue as this queued
103                
104                statisticalInsert(e); // update statistics
105        
106        }
107        
108    /**
109     * Sets the seed of this queue list's pseudo random number generator. 
110     * 
111     * @param newSeed
112     *            long : new seed this queue list's pseudo random number generator
113     */
114    public void setSeed(long newSeed) {
115        this._positionGenerator.setSeed(newSeed);
116    }
117}

[all classes][desmoj.core.simulator]
EMMA 2.0.9414 (unsupported private build) (C) Vladimir Roubtsov