package nl.tudelft.simulation.immutablecollections; import java.util.LinkedHashMap; import java.util.Map; /** * An immutable wrapper for a HashMap. *

* Copyright (c) 2013-2018 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights * reserved.
* BSD-style license. See DSOL License. *

* $LastChangedDate: 2015-07-24 02:58:59 +0200 (Fri, 24 Jul 2015) $, @version $Revision: 1147 $, by $Author: averbraeck * $, initial version May 7, 2016
* @author Alexander Verbraeck * @author Peter Knoppers * @author Wouter Schakel * @param the key type of content of this Map * @param the value type of content of this Map */ public class ImmutableLinkedHashMap extends ImmutableAbstractMap { /** */ private static final long serialVersionUID = 20160507L; /** * @param map the map to use for the immutable map. */ public ImmutableLinkedHashMap(final Map map) { super(new LinkedHashMap(map), Immutable.COPY); } /** * @param map the map to use for the immutable map. * @param copyOrWrap COPY stores a safe, internal copy of the collection; WRAP stores a pointer to the original * collection */ public ImmutableLinkedHashMap(final Map map, final Immutable copyOrWrap) { super(copyOrWrap == Immutable.COPY ? new LinkedHashMap(map) : map, copyOrWrap); } /** * @param immutableMap the map to use for the immutable map. */ public ImmutableLinkedHashMap(final ImmutableAbstractMap immutableMap) { super(new LinkedHashMap(immutableMap.getMap()), Immutable.COPY); } /** * @param immutableMap the map to use for the immutable map. * @param copyOrWrap COPY stores a safe, internal copy of the collection; WRAP stores a pointer to the original * collection */ public ImmutableLinkedHashMap(final ImmutableAbstractMap immutableMap, final Immutable copyOrWrap) { super(copyOrWrap == Immutable.COPY ? new LinkedHashMap(immutableMap.getMap()) : immutableMap.getMap(), copyOrWrap); } /** {@inheritDoc} */ @Override protected final Map getMap() { return super.getMap(); } /** {@inheritDoc} */ @Override public final Map toMap() { return new LinkedHashMap(getMap()); } /** {@inheritDoc} */ @Override public final ImmutableSet keySet() { return new ImmutableHashSet(getMap().keySet()); } /** {@inheritDoc} */ @Override public final String toString() { Map map = getMap(); if (null == map) { return "ImmutableLinkedHashMap []"; } return "ImmutableLinkedHashMap [" + map.toString() + "]"; } }