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

## org.apache.openjpa.datacache
Class DelegatingQueryCache

    java.lang.Object
      org.apache.openjpa.datacache.DelegatingQueryCache

All Implemented Interfaces:
  QueryCache, TypesChangedListener, Closeable

    public class DelegatingQueryCache

extends Object
implements QueryCache

Delegating query cache that can also perform exception translation for use in facades. This cache allows its delegate to be null, in which case it returns default values or all methods.

Since:
  0.4.0
Author:
  Abe White

Constructor Summary
`DelegatingQueryCache(QueryCache cache)` Constructor.
`DelegatingQueryCache(QueryCache cache, RuntimeExceptionTranslator trans)`

Method Summary
`void` | `addTypesChangedListener(TypesChangedListener listen)` Add a new types event listener to this cache.
`void` | `clear()` Remove all data from this cache.
`void` | `close()` Free the resources used by this cache.
`boolean` | `equals(Object other)`
`QueryResult` | `get(QueryKey qk)` Return a list of oids for the given query key.
`QueryCache` | `getDelegate()` Return the direct delegate.
`QueryCache` | `getInnermostDelegate()` Return the native delegate.
`int` | `hashCode()`
`void` | `initialize(DataCacheManager mgr)` Initialize any resources associated with the given `DataCacheManager`.
`void` | `onTypesChanged(TypesChangedEvent e)` Notification that instances of persistent types have changed.
`boolean` | `pin(QueryKey qk)` Pin the value stored under `qk` into the cache.
`QueryResult` | `put(QueryKey qk, QueryResult oids)` Set the list of OIDs for the given query key.
`QueryResult` | `remove(QueryKey qk)` Remove the value stored under the given query key.
`boolean` | `removeTypesChangedListener(TypesChangedListener listen)` Remove an types event listener from this cache.
`protected RuntimeException` | `translate(RuntimeException re)` Translate the OpenJPA exception.
`boolean` | `unpin(QueryKey qk)` Unpin the value stored under `key` into the cache.
`void` | `writeLock()` Obtain a write lock on the cache.
`void` | `writeUnlock()` Release the write lock on the cache.

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

Constructor Detail

### DelegatingQueryCache

    public DelegatingQueryCache(QueryCache cache)

  Constructor. Supply delegate.

### DelegatingQueryCache

    public DelegatingQueryCache(QueryCache cache,
                                RuntimeExceptionTranslator trans)

Method Detail

### getDelegate

    public QueryCache getDelegate()

  Return the direct delegate.

### getInnermostDelegate

    public QueryCache getInnermostDelegate()

  Return the native delegate.

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `Object`

### equals

    public boolean equals(Object other)

  Overrides:
    `equals` in class `Object`

### translate

    protected RuntimeException translate(RuntimeException re)

  Translate the OpenJPA exception.

### initialize

    public void initialize(DataCacheManager mgr)

  Description copied from interface: `QueryCache`
  Initialize any resources associated with the given `DataCacheManager`.

  Specified by:
    `initialize` in interface `QueryCache`

### onTypesChanged

    public void onTypesChanged(TypesChangedEvent e)

  Description copied from interface: `TypesChangedListener`
  Notification that instances of persistent types have changed.

  Specified by:
    `onTypesChanged` in interface `TypesChangedListener`

### get

    public QueryResult get(QueryKey qk)

  Description copied from interface: `QueryCache`
  Return a list of oids for the given query key. This is an unmodifiable list.

  Specified by:
    `get` in interface `QueryCache`
  Returns:
    The query results matching the given key, or null if none

### put

    public QueryResult put(QueryKey qk,
                           QueryResult oids)

  Description copied from interface: `QueryCache`
  Set the list of OIDs for the given query key. A reference to the given list will be stored in the query cache, so the list should not be modified after invoking this method.

  Specified by:
    `put` in interface `QueryCache`
  Returns:
    The previously cached value, or `null` if the key was not previously cached. See `Map.put(K, V)` for more information.

### remove

    public QueryResult remove(QueryKey qk)

  Description copied from interface: `QueryCache`
  Remove the value stored under the given query key. This method is typically not invoked directly from outside the `QueryCache` class. Instead, the cache should be updated by implementing `RemoteCommitListener`, which will result in all queries that may be invalid being dropped.

  Specified by:
    `remove` in interface `QueryCache`
  Returns:
    The previously cached value, or `null` if the key was not previously cached. See `Map.remove(java.lang.Object)` for more information.

### clear

    public void clear()

  Description copied from interface: `QueryCache`
  Remove all data from this cache.

  Specified by:
    `clear` in interface `QueryCache`

### pin

    public boolean pin(QueryKey qk)

  Description copied from interface: `QueryCache`
  Pin the value stored under `qk` into the cache. This method guarantees that `qk`'s value will not be expired if the cache exceeds its capacity. It causes this data to be ignored when determining whether or not the cache is full, effectively increasing the total amount of data stored in the cache. This method does not affect the behavior of `QueryCache.remove(org.apache.openjpa.datacache.QueryKey)` or `TypesChangedListener.onTypesChanged(org.apache.openjpa.datacache.TypesChangedEvent)`.

  Specified by:
    `pin` in interface `QueryCache`
  Returns:
    `true` if `key`'s value was pinned into the cache; `false` if the key is not in the cache.

### unpin

    public boolean unpin(QueryKey qk)

  Description copied from interface: `QueryCache`
  Unpin the value stored under `key` into the cache. This method reverses a previous invocation of `QueryCache.pin(org.apache.openjpa.datacache.QueryKey)`. This method does not remove anything from the cache; it merely makes `key`'s value a candidate for flushing from the cache.

  Specified by:
    `unpin` in interface `QueryCache`
  Returns:
    `true` if `key`'s value was unpinned from the cache; `false` if the key is not in the cache.

### writeLock

    public void writeLock()

  Description copied from interface: `QueryCache`
  Obtain a write lock on the cache.

  Specified by:
    `writeLock` in interface `QueryCache`

### writeUnlock

    public void writeUnlock()

  Description copied from interface: `QueryCache`
  Release the write lock on the cache.

  Specified by:
    `writeUnlock` in interface `QueryCache`

### addTypesChangedListener

    public void addTypesChangedListener(TypesChangedListener listen)

  Description copied from interface: `QueryCache`
  Add a new types event listener to this cache.

  Specified by:
    `addTypesChangedListener` in interface `QueryCache`

### removeTypesChangedListener

    public boolean removeTypesChangedListener(TypesChangedListener listen)

  Description copied from interface: `QueryCache`
  Remove an types event listener from this cache.

  Specified by:
    `removeTypesChangedListener` in interface `QueryCache`

### close

    public void close()

  Description copied from interface: `QueryCache`
  Free the resources used by this cache.

  Specified by:
    `close` in interface `QueryCache`
  Specified by:
    `close` in interface `Closeable`

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

Copyright © 2006 Apache Software Foundation. All Rights Reserved.