SSJ
V. 2.6.

umontreal.iro.lecuyer.simevents
Class ListWithStat<E>

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractList<OE>
          extended by umontreal.iro.lecuyer.util.TransformingList<E,ListWithStat.Node<E>>
              extended by umontreal.iro.lecuyer.simevents.ListWithStat<E>
All Implemented Interfaces:
Iterable<E>, Collection<E>, List<E>
Direct Known Subclasses:
LinkedListStat

public class ListWithStat<E>
extends TransformingList<E,ListWithStat.Node<E>>

Implements a list with integrated statistical probes to provide automatic collection of statistics on the sojourn times of objects in the list and on the size of the list as a function of time given by a simulator. The automatic statistical collection can be enabled or disabled for each list, to reduce overhead. This class extends TransformingList and transforms elements into nodes associating insertion times with elements.


Nested Class Summary
static class ListWithStat.Node<E>
          Represents a node that can be part of a list with statistical collecting.
 
Constructor Summary
ListWithStat(List<ListWithStat.Node<E>> nodeList)
          Constructs a new list with internal data structure using the default simulator and implemented by nodeList.
ListWithStat(List<ListWithStat.Node<E>> nodeList, Collection<? extends E> c)
          Constructs a list containing the elements of the specified collection, whose elements are stored into nodeList and using the default simulator.
ListWithStat(List<ListWithStat.Node<E>> nodeList, Collection<? extends E> c, String name)
          Constructs a new list containing the elements of the specified collection c, with name name, internal list nodeList, and using the default simulator.
ListWithStat(List<ListWithStat.Node<E>> nodeList, String name)
          Constructs a new list with name name, internal list nodeList, and using the default simulator.
ListWithStat(Simulator inSim, List<ListWithStat.Node<E>> nodeList)
          Constructs a new list with internal data structure implemented by nodeList.
ListWithStat(Simulator inSim, List<ListWithStat.Node<E>> nodeList, Collection<? extends E> c)
          Constructs a list containing the elements of the specified collection, whose elements are stored into nodeList.
ListWithStat(Simulator inSim, List<ListWithStat.Node<E>> nodeList, Collection<? extends E> c, String name)
          Constructs a new list containing the elements of the specified collection c, with name name, and internal list nodeList.
ListWithStat(Simulator inSim, List<ListWithStat.Node<E>> nodeList, String name)
          Constructs a new list with name name, and internal list nodeList.
 
Method Summary
 void add(int index, E obj)
           
 void clear()
           
 E convertFromInnerType(ListWithStat.Node<E> node)
          Converts an element in the inner list to an element of the outer type.
 ListWithStat.Node<E> convertToInnerType(E element)
          Converts an element of the outer type to an element for the inner list.
 double getInitTime()
          Returns the last simulation time initStat was called.
 String getName()
          Returns the name associated to this list, or null if no name was assigned.
 boolean getStatCollecting()
          Returns true if the list collects statistics about its size and sojourn times of elements, and false otherwise.
 void initStat()
          Reinitializes the two statistical probes created by setStatCollecting (true) and makes an update for the probe on the list size.
 Iterator<E> iterator()
           
 ListIterator<E> listIterator()
           
 ListIterator<E> listIterator(int index)
           
 E remove(int index)
           
 String report()
          Returns a string containing a statistical report on the list, provided that setStatCollecting (true) has been called before for this list.
 E set(int index, E element)
           
 void setSimulator(Simulator sim)
          Sets the simulator associated with this list.
 void setStatCollecting(boolean b)
          Starts or stops collecting statistics on this list.
 Simulator simulator()
          Returns the simulator associated with this list.
 Accumulate statSize()
          Returns the statistical probe on the evolution of the size of the list as a function of the simulation time.
 Tally statSojourn()
          Returns the statistical probe on the sojourn times of the objects in the list.
 
Methods inherited from class umontreal.iro.lecuyer.util.TransformingList
get, getInnerList, size
 
Methods inherited from class java.util.AbstractList
add, addAll, equals, hashCode, indexOf, lastIndexOf, subList
 
Methods inherited from class java.util.AbstractCollection
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.List
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray
 

Constructor Detail

ListWithStat

public ListWithStat(List<ListWithStat.Node<E>> nodeList)
Constructs a new list with internal data structure using the default simulator and implemented by nodeList. The given list is cleared for the constructed list to be initially empty.


ListWithStat

public ListWithStat(Simulator inSim,
                    List<ListWithStat.Node<E>> nodeList)
Constructs a new list with internal data structure implemented by nodeList. The given list is cleared for the constructed list to be initially empty.

Parameters:
nodeList - the list containing the nodes

ListWithStat

public ListWithStat(List<ListWithStat.Node<E>> nodeList,
                    Collection<? extends E> c)
Constructs a list containing the elements of the specified collection, whose elements are stored into nodeList and using the default simulator.

Parameters:
nodeList - the list containing the nodes
c - collection containing elements to fill in this list with

ListWithStat

public ListWithStat(Simulator inSim,
                    List<ListWithStat.Node<E>> nodeList,
                    Collection<? extends E> c)
Constructs a list containing the elements of the specified collection, whose elements are stored into nodeList.

Parameters:
inSim - simulator associate to the current variable
nodeList - the list containing the nodes
c - collection containing elements to fill in this list with

ListWithStat

public ListWithStat(List<ListWithStat.Node<E>> nodeList,
                    String name)
Constructs a new list with name name, internal list nodeList, and using the default simulator. This name can be used to identify the list in traces and reports. The given list is cleared for the constructed list to be initially empty.

Parameters:
nodeList - the list containing the nodes
name - name for the list object

ListWithStat

public ListWithStat(Simulator inSim,
                    List<ListWithStat.Node<E>> nodeList,
                    String name)
Constructs a new list with name name, and internal list nodeList. This name can be used to identify the list in traces and reports. The given list is cleared for the constructed list to be initially empty.

Parameters:
inSim - simulator associate to the current variable
nodeList - the list containing the nodes
name - name for the list object

ListWithStat

public ListWithStat(List<ListWithStat.Node<E>> nodeList,
                    Collection<? extends E> c,
                    String name)
Constructs a new list containing the elements of the specified collection c, with name name, internal list nodeList, and using the default simulator. This name can be used to identify the list in traces and reports.

Parameters:
nodeList - the list containing the nodes
c - collection containing elements to fill in this list with
name - name for the list object

ListWithStat

public ListWithStat(Simulator inSim,
                    List<ListWithStat.Node<E>> nodeList,
                    Collection<? extends E> c,
                    String name)
Constructs a new list containing the elements of the specified collection c, with name name, and internal list nodeList. This name can be used to identify the list in traces and reports.

Parameters:
inSim - simulator associate to the current variable
nodeList - the list containing the nodes
c - collection containing elements to fill in this list with
name - name for the list object
Method Detail

convertFromInnerType

public E convertFromInnerType(ListWithStat.Node<E> node)
Description copied from class: TransformingList
Converts an element in the inner list to an element of the outer type.

Specified by:
convertFromInnerType in class TransformingList<E,ListWithStat.Node<E>>
Parameters:
node - the inner element.
Returns:
the outer element.

convertToInnerType

public ListWithStat.Node<E> convertToInnerType(E element)
Description copied from class: TransformingList
Converts an element of the outer type to an element for the inner list.

Specified by:
convertToInnerType in class TransformingList<E,ListWithStat.Node<E>>
Parameters:
element - the outer element.
Returns:
the inner element.

simulator

public Simulator simulator()
Returns the simulator associated with this list.

Returns:
the simulator associated with this list

setSimulator

public void setSimulator(Simulator sim)
Sets the simulator associated with this list. This list should be cleared after this method is called.

Parameters:
sim - the simulator of this list

clear

public void clear()
Specified by:
clear in interface Collection<E>
Specified by:
clear in interface List<E>
Overrides:
clear in class TransformingList<E,ListWithStat.Node<E>>

add

public void add(int index,
                E obj)
Specified by:
add in interface List<E>
Overrides:
add in class TransformingList<E,ListWithStat.Node<E>>

remove

public E remove(int index)
Specified by:
remove in interface List<E>
Overrides:
remove in class TransformingList<E,ListWithStat.Node<E>>

iterator

public Iterator<E> iterator()
Specified by:
iterator in interface Iterable<E>
Specified by:
iterator in interface Collection<E>
Specified by:
iterator in interface List<E>
Overrides:
iterator in class TransformingList<E,ListWithStat.Node<E>>

listIterator

public ListIterator<E> listIterator()
Specified by:
listIterator in interface List<E>
Overrides:
listIterator in class TransformingList<E,ListWithStat.Node<E>>

listIterator

public ListIterator<E> listIterator(int index)
Specified by:
listIterator in interface List<E>
Overrides:
listIterator in class TransformingList<E,ListWithStat.Node<E>>

set

public E set(int index,
             E element)
Specified by:
set in interface List<E>
Overrides:
set in class TransformingList<E,ListWithStat.Node<E>>

getStatCollecting

public boolean getStatCollecting()
Returns true if the list collects statistics about its size and sojourn times of elements, and false otherwise. By default, statistical collecting is turned off.

Returns:
the status of statistical collecting

setStatCollecting

public void setStatCollecting(boolean b)
Starts or stops collecting statistics on this list. If the statistical collection is turned ON, the method creates two statistical probes if they do not exist yet. The first one, of the class Accumulate, measures the evolution of the size of the list as a function of time. It can be accessed by the method statSize. The second one, of the class Tally and accessible via statSojourn, samples the sojourn times in the list of the objects removed during the observation period, i.e., between the last initialization time of this statistical probe and the current time. The method automatically calls initStat to initialize these two probes. When this method is used, it is normally invoked immediately after calling the constructor of the list.

Throws:
IllegalStateException - if the statistical collection is in the same state as the caller requires

initStat

public void initStat()
Reinitializes the two statistical probes created by setStatCollecting (true) and makes an update for the probe on the list size.

Throws:
IllegalStateException - if the statistical collection is disabled

getInitTime

public double getInitTime()
Returns the last simulation time initStat was called.

Returns:
the last simulation time initStat was called

statSize

public Accumulate statSize()
Returns the statistical probe on the evolution of the size of the list as a function of the simulation time. This probe exists only if setStatCollecting (true) has been called for this list.

Returns:
the statistical probe on the evolution of the size of the list

statSojourn

public Tally statSojourn()
Returns the statistical probe on the sojourn times of the objects in the list. This probe exists only if setStatCollecting (true) has been called for this list.

Returns:
the statistical probe for the sojourn times in the list

report

public String report()
Returns a string containing a statistical report on the list, provided that setStatCollecting (true) has been called before for this list. Even If setStatCollecting was called with false afterward, the report will be made for the collected observations. If the probes do not exist, i.e., setStatCollecting was never called for this object, an illegal state exception will be thrown.

Returns:
a statistical report, represented as a string
Throws:
IllegalStateException - if no statistical probes exist

getName

public String getName()
Returns the name associated to this list, or null if no name was assigned.

Returns:
the name associated to this list

SSJ
V. 2.6.

To submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.