Package org.apache.torque.manager

# Class MethodResultCache

java.lang.Object
org.apache.torque.manager.MethodResultCache

Direct Known Subclasses:
  `NoOpMethodResultCache`

public class MethodResultCache extends Object
This class provides a cache for convenient storage of method results.

Version:
  $Id: MethodResultCache.java 1917233 2024-04-21 11:37:11Z tv $
Author:
  John McNally

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `MethodResultCache()`
  Allows subclasses to have ctors that do not require a cache.
  ``
  `MethodResultCache(org.apache.commons.jcs3.access.GroupCacheAccess<MethodCacheKey,Object> cache)`
  Constructor

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `clear()`
  Clear the cache
  `<T> T`
  `get(Serializable instanceOrClass, String method, Serializable... arg)`
  Get an object from the method cache
  `protected Object`
  `getImpl(MethodCacheKey key)`
  `<T> void`
  `put(T value, Serializable instanceOrClass, String method, Serializable... arg)`
  Put an object into the method cache
  `protected Object`
  `putImpl(MethodCacheKey key, Object value)`
  `<T> T`
  `remove(Serializable instanceOrClass, String method, Serializable... arg)`
  Remove object from method cache
  `void`
  `removeAll(Serializable instanceOrClass, String method)`
  Remove all objects of the same group
  `protected Object`
  `removeImpl(MethodCacheKey key)`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### MethodResultCache

    public MethodResultCache(org.apache.commons.jcs3.access.GroupCacheAccess<MethodCacheKey,Object> cache)
    Constructor
    Parameters:
      `cache` - the cache instance to use

  - ### MethodResultCache

    protected MethodResultCache()
    Allows subclasses to have ctors that do not require a cache. This is used by NullMethodResultCache which has no-op versions of all methods.

- ## Method Details

  - ### clear

    public void clear()
    Clear the cache

  - ### getImpl

    protected Object getImpl(MethodCacheKey key)

  - ### putImpl

    protected Object putImpl(MethodCacheKey key, Object value) throws TorqueException
    Throws:
      `TorqueException`

  - ### removeImpl

    protected Object removeImpl(MethodCacheKey key)

  - ### get

    public <T> T get(Serializable instanceOrClass, String method, Serializable... arg)
    Get an object from the method cache
    Type Parameters:
      `T` - type of the instance class
    Parameters:
      `instanceOrClass` - the Object on which the method is invoked. if the method is static, a String representing the class name is used.
      `method` - the method name
      `arg` - optional arguments for the method
    Returns:
      the object or null if it does not exist

  - ### put

    public <T> void put(T value, Serializable instanceOrClass, String method, Serializable... arg)
    Put an object into the method cache
    Type Parameters:
      `T` - type of the instance class
    Parameters:
      `value` - the object to put into the cache
      `instanceOrClass` - the Object on which the method is invoked. if the method is static, a String representing the class name is used.
      `method` - the method name
      `arg` - optional arguments for the method

  - ### removeAll

    public void removeAll(Serializable instanceOrClass, String method)
    Remove all objects of the same group
    Parameters:
      `instanceOrClass` - the Object on which the method is invoked. if the method is static, a String representing the class name is used.
      `method` - the method name

  - ### remove

    public <T> T remove(Serializable instanceOrClass, String method, Serializable... arg)
    Remove object from method cache
    Type Parameters:
      `T` - type of the instance class
    Parameters:
      `instanceOrClass` - the Object on which the method is invoked. if the method is static, a String representing the class name is used.
      `method` - the method name
      `arg` - optional arguments for the method
    Returns:
      the removed object