Package 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 Description protected EventManager
eventManager
protected EventSubject
eventSubject
protected String
name
protected EventBridge
remoteNotificationsHandler
static int
SNAPSHOT_CACHE_SIZE_DEFAULT
static long
SNAPSHOT_EXPIRATION_DEFAULT
protected ConcurrentMap<ObjectId,DataRow>
snapshots
-
Constructor Summary
Constructors Constructor Description DataRowStore(String name, RuntimeProperties 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 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.protected EventBridge
getEventBridge()
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(RuntimeProperties properties)
int
maximumSize()
Returns maximum allowed cache size.void
processRemoteEvent(SnapshotEvent event)
Handles remote events received via EventBridge.void
processSnapshotChanges(Object postedBy, Map<ObjectId,DataRow> updatedSnapshots, Collection<ObjectId> deletedSnapshotIds, Collection<ObjectId> invalidatedSnapshotIds, Collection<ObjectId> indirectlyModifiedIds)
Processes changes made to snapshots.protected void
setEventBridge(EventBridge eventBridge)
void
setEventManager(EventManager eventManager)
Sets an EventManager associated with this DataRowStore.void
setName(String name)
Sets the name of this DataRowStore.void
shutdown()
Shuts down any remote notification connections, and clears internal cache.int
size()
Returns current cache size.
-
-
-
Field Detail
-
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
-
name
protected String name
-
snapshots
protected ConcurrentMap<ObjectId,DataRow> snapshots
-
eventManager
protected transient EventManager eventManager
-
remoteNotificationsHandler
protected transient EventBridge remoteNotificationsHandler
-
eventSubject
protected transient EventSubject eventSubject
-
-
Constructor Detail
-
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 Detail
-
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.
-
-