org.apache.cayenne.access
Class DataRowStore

java.lang.Object
  extended by 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.

Synchronization Note: DataRowStore synchronizes most operations on its own instance.

Since:
1.1
See Also:
Serialized Form

Field Summary
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  org.apache.commons.collections.map.LRUMap snapshots
           
 
Constructor Summary
DataRowStore(String name)
          Deprecated. since 3.0 as it instantiates an EventManager internally that can lead to dispatch thread leaks.
DataRowStore(String name, Map properties)
          Deprecated. since 3.0 as it instantiates an EventManager internally that can lead to dispatch thread leaks.
DataRowStore(String name, Map properties, EventManager eventManager)
          Creates new DataRowStore with a specified name and a set of properties.
 
Method Summary
 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 org.apache.commons.collections.map.LRUMap 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)
Deprecated. since 3.0 as it instantiates an EventManager internally that can lead to dispatch thread leaks.

Creates new named DataRowStore with default configuration.


DataRowStore

public DataRowStore(String name,
                    Map properties)
Deprecated. since 3.0 as it instantiates an EventManager internally that can lead to dispatch thread leaks.

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.

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-2011 Apache Cayenne. All Rights Reserved.