/* * Geotoolkit.org - An Open Source Java GIS Toolkit * http://www.geotoolkit.org * * (C) 2008-2012, Open Source Geospatial Foundation (OSGeo) * (C) 2009-2012, Geomatys * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ /** * Addition to the collection framework. Most classes in this package implement interfaces * from the <cite>Java Collection Framework</cite> defined in the {@link java.util} package. * <ul> * <li><p> * {@link org.geotoolkit.util.collection.WeakHashSet} provides a way to ensure that * a factory returns unique instances for all values that are equal in the sense of * {@link java.lang.Object#equals Object.equals(Object)}. The values that were created * in previous factory operations are retained by {@linkplain java.lang.ref.WeakReference * weak references} for reuse. * </p></li><li><p> * {@link org.geotoolkit.util.collection.Cache} and * {@link org.geotoolkit.util.collection.WeakValueHashMap} are {@link java.util.Map java.util.Map} * implementations that may be used for some caching or pseudo-caching functionalities. The * {@link org.geotoolkit.util.collection.Cache} implementation is the most full-featured one * and supports concurrency, while the other implementations are more lightweight, sometime * thread-safe but without concurrency support. * </p></li><li><p> * {@link org.geotoolkit.util.collection.CheckedCollection}, * {@link org.geotoolkit.util.collection.CheckedArrayList}, * {@link org.geotoolkit.util.collection.CheckedHashSet} and * {@link org.geotoolkit.util.collection.CheckedHashMap} can be used for combining <em>runtime</em> * type safety with thread-safety (without concurrency). They are similar in functionalities to * the wrappers provided by the standard {@link java.util.Collections} methods, except that they * combine both functionalities in a single class (so reducing the amount of indirection), provide * a hook for making the collections read-only and allow the caller to specify the synchronization * lock of his choice. * </p></li><li><p> * {@link org.geotoolkit.util.collection.DerivedMap} and * {@link org.geotoolkit.util.collection.DerivedSet} are wrapper collections in which the * keys or the values are derived on-the-fly from the content of an other collection. * </p></li><li><p> * {@link org.geotoolkit.util.collection.IntegerList} and * </p></li><li><p> * {@link org.geotoolkit.util.collection.DisjointSet}, * {@link org.geotoolkit.util.collection.KeySortedList} and * {@link org.geotoolkit.util.collection.FrequencySortedSet} provides specialized ways to * organize their elements. * </p></li> * </ul> * * @author Martin Desruisseaux (IRD) * @version 3.01 * * @since 1.0 * @module */ package org.geotoolkit.util.collection;