Class ElementAttributes

java.lang.Object
org.apache.commons.jcs3.engine.ElementAttributes
All Implemented Interfaces:
Serializable, Cloneable, IElementAttributes

public class ElementAttributes extends Object implements IElementAttributes
This it the element attribute descriptor class. Each element in the cache has an ElementAttribute object associated with it. An ElementAttributes object can be associated with an element in 3 ways:
  1. When the item is put into the cache, you can associate an element attributes object.
  2. If not attributes object is include when the element is put into the cache, then the default attributes for the region will be used.
  3. The element attributes can be reset. This effectively results in a retrieval followed by a put. Hence, this is the same as 1.
See Also:
  • Constructor Details

  • Method Details

    • setMaxLife

      public void setMaxLife(long mls)
      Sets the maxLife attribute of the IAttributes object.

      Specified by:
      setMaxLife in interface IElementAttributes
      Parameters:
      mls - The new MaxLifeSeconds value
    • getMaxLife

      public long getMaxLife()
      Sets the maxLife attribute of the IAttributes object. How many seconds it can live after creation.

      If this is exceeded the element will not be returned, instead it will be removed. It will be removed on retrieval, or removed actively if the memory shrinker is turned on.

      Specified by:
      getMaxLife in interface IElementAttributes
      Returns:
      The MaxLifeSeconds value
    • setIdleTime

      public void setIdleTime(long idle)
      Sets the idleTime attribute of the IAttributes object. This is the maximum time the item can be idle in the cache, that is not accessed.

      If this is exceeded the element will not be returned, instead it will be removed. It will be removed on retrieval, or removed actively if the memory shrinker is turned on.

      Specified by:
      setIdleTime in interface IElementAttributes
      Parameters:
      idle - The new idleTime value
    • setSize

      public void setSize(int size)
      Size in bytes. This is not used except in the admin pages. It will be 0 by default and is only updated when the element is serialized.

      Specified by:
      setSize in interface IElementAttributes
      Parameters:
      size - The new size value
    • getSize

      public int getSize()
      Gets the size attribute of the IAttributes object

      Specified by:
      getSize in interface IElementAttributes
      Returns:
      The size value
    • getCreateTime

      public long getCreateTime()
      Gets the createTime attribute of the IAttributes object.

      This should be the current time in milliseconds returned by the sysutem call when the element is put in the cache.

      Putting an item in the cache overrides any existing items.

      Specified by:
      getCreateTime in interface IElementAttributes
      Returns:
      The createTime value
    • setCreateTime

      public void setCreateTime()
      Sets the createTime attribute of the IElementAttributes object
    • getIdleTime

      public long getIdleTime()
      Gets the idleTime attribute of the IAttributes object.

      Specified by:
      getIdleTime in interface IElementAttributes
      Returns:
      The idleTime value
    • getTimeToLiveSeconds

      public long getTimeToLiveSeconds()
      Gets the time left to live of the IAttributes object.

      This is the (max life + create time) - current time.

      Specified by:
      getTimeToLiveSeconds in interface IElementAttributes
      Returns:
      The TimeToLiveSeconds value
    • getLastAccessTime

      public long getLastAccessTime()
      Gets the LastAccess attribute of the IAttributes object.

      Specified by:
      getLastAccessTime in interface IElementAttributes
      Returns:
      The LastAccess value.
    • setLastAccessTimeNow

      public void setLastAccessTimeNow()
      Sets the LastAccessTime as now of the IElementAttributes object
      Specified by:
      setLastAccessTimeNow in interface IElementAttributes
    • setLastAccessTime

      public void setLastAccessTime(long time)
      only for use from test code
    • getIsSpool

      public boolean getIsSpool()
      Can this item be spooled to disk

      By default this is true.

      Specified by:
      getIsSpool in interface IElementAttributes
      Returns:
      The spoolable value
    • setIsSpool

      public void setIsSpool(boolean val)
      Sets the isSpool attribute of the IElementAttributes object

      By default this is true.

      Specified by:
      setIsSpool in interface IElementAttributes
      Parameters:
      val - The new isSpool value
    • getIsLateral

      public boolean getIsLateral()
      Is this item laterally distributable. Can it be sent to auxiliaries of type lateral.

      By default this is true.

      Specified by:
      getIsLateral in interface IElementAttributes
      Returns:
      The isLateral value
    • setIsLateral

      public void setIsLateral(boolean val)
      Sets the isLateral attribute of the IElementAttributes object

      By default this is true.

      Specified by:
      setIsLateral in interface IElementAttributes
      Parameters:
      val - The new isLateral value
    • getIsRemote

      public boolean getIsRemote()
      Can this item be sent to the remote cache
      Specified by:
      getIsRemote in interface IElementAttributes
      Returns:
      true if the item can be sent to a remote auxiliary
    • setIsRemote

      public void setIsRemote(boolean val)
      Sets the isRemote attribute of the ElementAttributes object
      Specified by:
      setIsRemote in interface IElementAttributes
      Parameters:
      val - The new isRemote value
    • getIsEternal

      public boolean getIsEternal()
      You can turn off expiration by setting this to true. The max life value will be ignored.

      Specified by:
      getIsEternal in interface IElementAttributes
      Returns:
      true if the item cannot expire.
    • setIsEternal

      public void setIsEternal(boolean val)
      Sets the isEternal attribute of the ElementAttributes object. True means that the item should never expire. If can still be removed if it is the least recently used, and you are using the LRUMemory cache. it just will not be filtered for expiration by the cache hub.

      Specified by:
      setIsEternal in interface IElementAttributes
      Parameters:
      val - The new isEternal value
    • addElementEventHandler

      public void addElementEventHandler(IElementEventHandler eventHandler)
      Adds a ElementEventHandler. Handler's can be registered for multiple events. A registered handler will be called at every recognized event.

      The alternative would be to register handlers for each event. Or maybe The handler interface should have a method to return whether it cares about certain events.

      Specified by:
      addElementEventHandler in interface IElementAttributes
      Parameters:
      eventHandler - The ElementEventHandler to be added to the list.
    • addElementEventHandlers

      public void addElementEventHandlers(List<IElementEventHandler> eventHandlers)
      Sets the eventHandlers of the IElementAttributes object.

      This add the references to the local list. Subsequent changes in the caller's list will not be reflected.

      Specified by:
      addElementEventHandlers in interface IElementAttributes
      Parameters:
      eventHandlers - List of IElementEventHandler objects
    • getTimeFactorForMilliseconds

      Specified by:
      getTimeFactorForMilliseconds in interface IElementAttributes
    • setTimeFactorForMilliseconds

      public void setTimeFactorForMilliseconds(long factor)
      Specified by:
      setTimeFactorForMilliseconds in interface IElementAttributes
    • getElementEventHandlers

      Gets the elementEventHandlers. Returns null if none exist. Makes checking easy.

      Specified by:
      getElementEventHandlers in interface IElementAttributes
      Returns:
      The elementEventHandlers List of IElementEventHandler objects
    • toString

      public String toString()
      For logging and debugging the element IElementAttributes.

      Overrides:
      toString in class Object
      Returns:
      String info about the values.
    • clone

      Description copied from interface: IElementAttributes
      Clone object
      Specified by:
      clone in interface IElementAttributes
      Overrides:
      clone in class Object
      See Also: