Class DataRowStore

java.lang.Object
org.apache.cayenne.access.DataRowStore
All Implemented Interfaces:
Serializable

public class DataRowStore extends Object implements Serializable
A fixed size cache of DataRows keyed by ObjectId.
Since:
1.1
See Also:
  • Field Details

  • Constructor Details

    • DataRowStore

      public DataRowStore(String name, RuntimeProperties properties, EventManager eventManager)
      Creates new DataRowStore with a specified name and a set of properties. If no properties are defined, default values are used.
      Parameters:
      name - DataRowStore name. Used to identify this DataRowStore in events, etc. Can't be null.
      properties - Properties map used to configure DataRowStore parameters. Can be null.
      eventManager - EventManager that should be used for posting and receiving events.
      Since:
      1.2
  • Method Details

    • initWithProperties

      protected void initWithProperties(RuntimeProperties properties)
    • setEventBridge

      protected void setEventBridge(EventBridge eventBridge)
    • getEventBridge

      protected EventBridge getEventBridge()
    • size

      public int size()
      Returns current cache size.
    • maximumSize

      public int maximumSize()
      Returns maximum allowed cache size.
    • shutdown

      public void shutdown()
      Shuts down any remote notification connections, and clears internal cache.
    • getName

      public String getName()
      Returns the name of this DataRowStore. Name allows to create EventSubjects for event notifications addressed to or sent from this DataRowStore.
    • setName

      public void setName(String name)
      Sets the name of this DataRowStore. Name allows to create EventSubjects for event notifications addressed to or sent from this DataRowStore.
    • getEventManager

      public EventManager getEventManager()
      Returns an EventManager associated with this DataRowStore.
      Since:
      1.2
    • setEventManager

      public void setEventManager(EventManager eventManager)
      Sets an EventManager associated with this DataRowStore.
      Since:
      1.2
    • getCachedSnapshot

      public DataRow getCachedSnapshot(ObjectId oid)
      Returns cached snapshot or null if no snapshot is currently cached for the given ObjectId.
    • getSnapshotEventSubject

      public EventSubject getSnapshotEventSubject()
      Returns EventSubject used by this SnapshotCache to notify of snapshot changes.
    • clear

      public void clear()
      Expires and removes all stored snapshots without sending any notification events.
    • forgetSnapshot

      public void forgetSnapshot(ObjectId id)
      Evicts a snapshot from cache without generating any SnapshotEvents.
    • processRemoteEvent

      public void processRemoteEvent(SnapshotEvent event)
      Handles remote events received via EventBridge. Performs needed snapshot updates, and then resends the event to local listeners.
    • processSnapshotChanges

      public void processSnapshotChanges(Object postedBy, Map<ObjectId,DataRow> updatedSnapshots, Collection<ObjectId> deletedSnapshotIds, Collection<ObjectId> invalidatedSnapshotIds, Collection<ObjectId> indirectlyModifiedIds)
      Processes changes made to snapshots. Modifies internal cache state, and then sends the event to all listeners. Source of these changes is usually an ObjectStore.