Overview | Package | Class | Tree | Deprecated | Index | Help
| SSJ V. 2.1.1.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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

    java.lang.Object
      java.util.AbstractCollection<E>
          java.util.AbstractList<OE>
              umontreal.iro.lecuyer.util.TransformingList<E,ListWithStat.Node<E>>
                  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

Overview | Package | Class | Tree | Deprecated | Index | Help
| SSJ V. 2.1.1.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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