/** * Contains a set of immutable collection interfaces and wrapper implementations. Two versions of immutable collections * are implemented: *
    *
  1. A version, identified by Immutable.COPY, where the immutable collection can neither be changed by any object * "using" the ImmutableCollection nor anymore by objects that have a pointer to the collection, as an internal * (shallow) copy is made of the collection. This is the default implementation.
  2. *
  3. A version, identified by Immutable.WRAP, where the immutable collection can not be changed by any object "using" * the ImmutableCollection, but it can still be changed by any object that has a pointer to the original collection that * is "wrapped". Instead of a (shallow) copy of the collection, a pointer to the collection is stored.
  4. *
*

* Copyright (c) 2016-2018 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights * reserved. See for project information * https://simulation.tudelft.nl. The DSOL project is distributed under a three-clause BSD-style license, which can * be found at * https://simulation.tudelft.nl/dsol/3.0/license.html. *

* @author Alexander Verbraeck * @author Peter Knoppers * @author Wouter Schakel */ package nl.tudelft.simulation.immutablecollections;