Class DelegatingQueryCache

  • All Implemented Interfaces:
    QueryCache, TypesChangedListener, Closeable

    public class DelegatingQueryCache
    extends java.lang.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
    • 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 java.lang.Object
      • equals

        public boolean equals​(java.lang.Object other)
        Overrides:
        equals in class java.lang.Object
      • translate

        protected java.lang.RuntimeException translate​(java.lang.RuntimeException re)
        Translate the OpenJPA exception.
      • 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
      • 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
      • close

        public void close()
        Description copied from interface: QueryCache
        Free the resources used by this cache.
        Specified by:
        close in interface Closeable
        Specified by:
        close in interface QueryCache
      • getStatistics

        public QueryStatistics<QueryKey> getStatistics()
        Description copied from interface: QueryCache
        Gets the simple statistics for query results. If the statistics gathering is disabled, an empty statistics is returned.
        Specified by:
        getStatistics in interface QueryCache