org.apache.cayenne.access

## 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:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `EVENT_BRIDGE_FACTORY_DEFAULT`
    `static String` | `EVENT_BRIDGE_FACTORY_PROPERTY`
    `protected EventManager` | `eventManager`
    `protected EventSubject` | `eventSubject`
    `protected String` | `name`
    `protected boolean` | `notifyingRemoteListeners`
    `static boolean` | `REMOTE_NOTIFICATION_DEFAULT`
    `static String` | `REMOTE_NOTIFICATION_PROPERTY`
    `protected EventBridge` | `remoteNotificationsHandler`
    `static int` | `SNAPSHOT_CACHE_SIZE_DEFAULT`
    `static String` | `SNAPSHOT_CACHE_SIZE_PROPERTY`
    `static long` | `SNAPSHOT_EXPIRATION_DEFAULT`
    `static String` | `SNAPSHOT_EXPIRATION_PROPERTY`
    `protected ConcurrentMap<ObjectId,DataRow>` | `snapshots`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DataRowStore(String name, Map properties, EventManager eventManager)` Creates new DataRowStore with a specified name and a set of properties.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `clear()` Expires and removes all stored snapshots without sending any notification events.
    `void` | `forgetSnapshot(ObjectId id)` Evicts a snapshot from cache without generating any SnapshotEvents.
    `DataRow` | `getCachedSnapshot(ObjectId oid)` Returns cached snapshot or null if no snapshot is currently cached for the given ObjectId.
    `EventManager` | `getEventManager()` Returns an EventManager associated with this DataRowStore.
    `String` | `getName()` Returns the name of this DataRowStore.
    `EventSubject` | `getSnapshotEventSubject()` Returns EventSubject used by this SnapshotCache to notify of snapshot changes.
    `protected void` | `initWithProperties(Map properties)`
    `boolean` | `isNotifyingRemoteListeners()`
    `int` | `maximumSize()` Returns maximum allowed cache size.
    `void` | `processRemoteEvent(SnapshotEvent event)` Handles remote events received via EventBridge.
    `void` | `processSnapshotChanges(Object postedBy, Map updatedSnapshots, Collection deletedSnapshotIds, Collection invalidatedSnapshotIds, Collection indirectlyModifiedIds)` Processes changes made to snapshots.
    `void` | `setEventManager(EventManager eventManager)` Sets an EventManager associated with this DataRowStore.
    `void` | `setName(String name)` Sets the name of this DataRowStore.
    `void` | `setNotifyingRemoteListeners(boolean notifyingRemoteListeners)`
    `void` | `shutdown()` Shuts down any remote notification connections, and clears internal cache.
    `int` | `size()` Returns current cache size.

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

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

- - ### Field Detail

    - #### SNAPSHOT_EXPIRATION_PROPERTY

          public static final String SNAPSHOT_EXPIRATION_PROPERTY

      See Also:
        Constant Field Values

    - #### SNAPSHOT_CACHE_SIZE_PROPERTY

          public static final String SNAPSHOT_CACHE_SIZE_PROPERTY

      See Also:
        Constant Field Values

    - #### REMOTE_NOTIFICATION_PROPERTY

          public static final String REMOTE_NOTIFICATION_PROPERTY

      See Also:
        Constant Field Values

    - #### EVENT_BRIDGE_FACTORY_PROPERTY

          public static final String EVENT_BRIDGE_FACTORY_PROPERTY

      See Also:
        Constant Field Values

    - #### SNAPSHOT_EXPIRATION_DEFAULT

          public static final long SNAPSHOT_EXPIRATION_DEFAULT

      See Also:
        Constant Field Values

    - #### SNAPSHOT_CACHE_SIZE_DEFAULT

          public static final int SNAPSHOT_CACHE_SIZE_DEFAULT

      See Also:
        Constant Field Values

    - #### REMOTE_NOTIFICATION_DEFAULT

          public static final boolean REMOTE_NOTIFICATION_DEFAULT

      See Also:
        Constant Field Values

    - #### EVENT_BRIDGE_FACTORY_DEFAULT

          public static final String EVENT_BRIDGE_FACTORY_DEFAULT

      See Also:
        Constant Field Values

    - #### name

          protected String name

    - #### snapshots

          protected ConcurrentMap<ObjectId,DataRow> snapshots

    - #### notifyingRemoteListeners

          protected boolean notifyingRemoteListeners

    - #### eventManager

          protected transient EventManager eventManager

    - #### remoteNotificationsHandler

          protected transient EventBridge remoteNotificationsHandler

    - #### eventSubject

          protected transient EventSubject eventSubject

  - ### Constructor Detail

    - #### DataRowStore

          public DataRowStore(String name,
                              Map 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 idenitfy 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 Detail

    - #### initWithProperties

          protected void initWithProperties(Map properties)

    - #### 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 updatedSnapshots,
                                             Collection deletedSnapshotIds,
                                             Collection invalidatedSnapshotIds,
                                             Collection 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.

    - #### isNotifyingRemoteListeners

          public boolean isNotifyingRemoteListeners()

    - #### setNotifyingRemoteListeners

          public void setNotifyingRemoteListeners(boolean notifyingRemoteListeners)

Copyright © 2001–2018 Apache Cayenne. All rights reserved.