Overview | Package | Class | Tree | Deprecated | Index | Help
| SolarMetric Kodo JDO 2.5.8 generated on January 11 2004
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## serp.util
Class RefKeyMap

    java.lang.Object
      |
      +--serp.util.RefKeyMap

All Implemented Interfaces:
  Map, RefMap

Direct Known Subclasses:
  SoftKeyMap, WeakKeyMap

Deprecated. Replaced by the `ReferenceMap`.

abstract class RefKeyMap
extends Object
implements RefMap

Abstract base class for maps whose keys are stored as weak or soft references. This class is more flexible than the standard `WeakHashMap` because it also allows soft references and because it can inherit the functionality of any other map type. For example, it can use JVM identity-based hashing if constructed with an `IdentityMap` or maintain its entries in insertion order if constructed with a `LinkedHashMap`.

Subclasses must define the `createRefMapKey(java.lang.Object, java.lang.ref.ReferenceQueue, boolean)` method only. Expired values are removed from the map before any mutator methods; removing before accessor methods can lead to `ConcurrentModificationException`s. Thus, the following methods may produce results which include key/value pairs that have expired:

- `size`
- `isEmpty`
- `containsKey`
- `keySet.size,contains,isEmpty`
- `entrySet.size,contains,isEmpty`
- `values.size,contains,isEmpty`

By default, all methods are delegated to the internal map provided at construction. Thus, the ordering, etc of the given map will be preserved; however, the hashing algorithm cannot be duplicated. A special case is made for the `IdentityMap`'s hashing, which is supported. Performance is similar to that of the internal map instance.

Inner Class Summary
`(package private) static interface` | `RefKeyMap.RefMapKey` Deprecated. Represents a key held by weak or soft reference.

Inner classes inherited from class java.util.Map
`Map.Entry`

Constructor Summary
`RefKeyMap()` Deprecated. Equivalent to `RefKeyMap (new HashMap ())`.
`RefKeyMap(Map map)` Deprecated. Construct a RefKeyMap with the given interal map.

Method Summary
`void` | `clear()` Deprecated.
`boolean` | `containsKey(Object key)` Deprecated.
`boolean` | `containsValue(Object value)` Deprecated.
`protected abstract RefKeyMap.RefMapKey` | `createRefMapKey(Object key, ReferenceQueue queue, boolean identity)` Deprecated. Create a weak or soft reference to hold the given key.
`Set` | `entrySet()` Deprecated.
`boolean` | `equals(Object other)` Deprecated.
`Object` | `get(Object key)` Deprecated.
`boolean` | `isEmpty()` Deprecated.
`Set` | `keySet()` Deprecated.
`boolean` | `makeHard(Object key)` Deprecated. Harden the reference for the given key.
`boolean` | `makeReference(Object key)` Deprecated. Soften the reference for the given key.
`Object` | `put(Object key, Object value)` Deprecated.
`void` | `putAll(Map map)` Deprecated.
`Object` | `remove(Object key)` Deprecated.
`int` | `size()` Deprecated.
`String` | `toString()` Deprecated.
`Collection` | `values()` Deprecated.

Methods inherited from class java.lang.Object
`, clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface java.util.Map
`hashCode`

Constructor Detail

### RefKeyMap

    public RefKeyMap()

  Deprecated.
  Equivalent to `RefKeyMap (new HashMap ())`.

### RefKeyMap

    public RefKeyMap(Map map)

  Deprecated.
  Construct a RefKeyMap with the given interal map. The internal map will be cleared. It should not be accessed in any way after being given to this constructor; this map will 'inherit' its behavior, however. For example, if the given map is a `LinkedHashMap`, the `values` method of this map will return values in insertion order.

Method Detail

### makeHard

    public boolean makeHard(Object key)

  Deprecated.
  Description copied from interface: `RefMap`
  Harden the reference for the given key. This will ensure that the key and the value it corresponds to are not garbage collected. Note that this is a mutator method and can result in `ConcurrentModificationException`s being thrown by any iterator in use while this method is called.
  Specified by:
    `makeHard` in interface `RefMap`
  Following copied from interface: `serp.util.RefMap`
  Returns:
    true if the reference to the key is now hard; false if the key does not exist in the map (or has already expired)

### makeReference

    public boolean makeReference(Object key)

  Deprecated.
  Description copied from interface: `RefMap`
  Soften the reference for the given key. This will allow the key and the value it corresponds to can be expired from the map, and the key/value garbage collected. This is the default for all new key/ value pairs added to the map. Note that this is a mutator method and can result in `ConcurrentModificationException`s being thrown by any iterator in use while this method is called.
  Specified by:
    `makeReference` in interface `RefMap`
  Following copied from interface: `serp.util.RefMap`
  Returns:
    true if the reference to the key/value is now soft; false if the key does not exist or the key/value cannot be maintained in a reference (as for nuill values)

### clear

    public void clear()

  Deprecated.
  Specified by:
    `clear` in interface `Map`

### containsKey

    public boolean containsKey(Object key)

  Deprecated.
  Specified by:
    `containsKey` in interface `Map`

### containsValue

    public boolean containsValue(Object value)

  Deprecated.
  Specified by:
    `containsValue` in interface `Map`

### entrySet

    public Set entrySet()

  Deprecated.
  Specified by:
    `entrySet` in interface `Map`

### equals

    public boolean equals(Object other)

  Deprecated.
  Specified by:
    `equals` in interface `Map`
  Overrides:
    `equals` in class `Object`

### get

    public Object get(Object key)

  Deprecated.
  Specified by:
    `get` in interface `Map`

### isEmpty

    public boolean isEmpty()

  Deprecated.
  Specified by:
    `isEmpty` in interface `Map`

### keySet

    public Set keySet()

  Deprecated.
  Specified by:
    `keySet` in interface `Map`

### put

    public Object put(Object key,
                      Object value)

  Deprecated.
  Specified by:
    `put` in interface `Map`

### putAll

    public void putAll(Map map)

  Deprecated.
  Specified by:
    `putAll` in interface `Map`

### remove

    public Object remove(Object key)

  Deprecated.
  Specified by:
    `remove` in interface `Map`

### size

    public int size()

  Deprecated.
  Specified by:
    `size` in interface `Map`

### values

    public Collection values()

  Deprecated.
  Specified by:
    `values` in interface `Map`

### toString

    public String toString()

  Deprecated.
  Overrides:
    `toString` in class `Object`

### createRefMapKey

    protected abstract RefKeyMap.RefMapKey createRefMapKey(Object key,
                                                           ReferenceQueue queue,
                                                           boolean identity)

  Deprecated.
  Create a weak or soft reference to hold the given key. In general, the returned reference should guarantee that its `Object.equals(java.lang.Object)`, `Object.hashCode()` and `Comparable.compareTo(java.lang.Object)` methods will be delegated to the given key value.
  Parameters:
    `key` - the key value to hold; will not be null
    `queue` - the reference queue to place the reference in, or null if the reference should not be placed in a queue
    `identity` - if true, the `Object.equals(java.lang.Object)` and `Object.hashCode()` methods of the returned reference should work by the JVM identity of the key, not its corresponding methods

Overview | Package | Class | Tree | Deprecated | Index | Help
| SolarMetric Kodo JDO 2.5.8 generated on January 11 2004
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright 2001,2002,2003 SolarMetric, Inc. All Rights Reserved.