Overview | Package | Class | Tree | Deprecated | Index | Help
| SolarMetric Kodo JDO 2.5.0 Reverse Schema Tool
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.solarmetric.rd.kodo.runtime.datacache
Class DataCacheStoreManager

    java.lang.Object
      |
      +--com.solarmetric.rd.kodo.runtime.DelegatingStoreManager
            |
            +--com.solarmetric.rd.kodo.runtime.datacache.DataCacheStoreManager

All Implemented Interfaces:
  StoreManager

public class DataCacheStoreManager
extends DelegatingStoreManager

StoreManager proxy that delegates to a data cache when possible.

Constructor Summary
`DataCacheStoreManager(com.solarmetric.rd.kodo.conf.JDOConfiguration conf, com.solarmetric.rd.kodo.runtime.StoreManager sm, com.solarmetric.rd.kodo.runtime.datacache.DataCache cache)` Constructor.

Method Summary
`void` | `begin()` Begin a data store transaction.
`void` | `commit()` Commit the current data store transaction.
`boolean` | `exists(java.lang.Object oid, com.solarmetric.rd.kodo.meta.ClassMetaData meta)` Verify that the given instance exists in the data store; return false if it does not.
`java.util.Collection` | `flush(java.util.Collection states)` Flush the given state manager collection to the datastore, returning a collection of user exceptions encountered during flushing.
`com.solarmetric.rd.kodo.runtime.datacache.DataCache` | `getDataCache()` Return the cache in use.
`boolean` | `initialize(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm, com.solarmetric.rd.kodo.runtime.JDOState state, java.lang.Object conn)` Initialize the given StateManager.
`void` | `load(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm, int field, java.lang.Object conn)` Load the given StateManager.
`protected com.solarmetric.rd.kodo.runtime.PCData` | `newPCData(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm)`
`void` | `rollback()` Rollback the current data store transaction.
`void` | `setPersistenceManager(com.solarmetric.rd.kodo.runtime.PersistenceManagerImpl pm)` Set a reference to the corresponding PersistenceManager.
`boolean` | `synchVersion(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm, java.lang.Object conn)` Update the version information in the given state manager to the version stored in the data store.

Methods inherited from class com.solarmetric.rd.kodo.runtime.DelegatingStoreManager
`beginOptimistic, copyDataStoreId, equals, getDataStoreIdClass, getDelegate, getInnermostDelegate, hashCode, newDataStoreId, newDataStoreId, newExtent, newQuery`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### DataCacheStoreManager

    public DataCacheStoreManager(com.solarmetric.rd.kodo.conf.JDOConfiguration conf,
                                 com.solarmetric.rd.kodo.runtime.StoreManager sm,
                                 com.solarmetric.rd.kodo.runtime.datacache.DataCache cache)

  Constructor.

Parameters:
  `sm` - the store manager to delegate to
  `cache` - the cache to access for shared objects

Method Detail

### getDataCache

    public com.solarmetric.rd.kodo.runtime.datacache.DataCache getDataCache()

  Return the cache in use.

### setPersistenceManager

    public void setPersistenceManager(com.solarmetric.rd.kodo.runtime.PersistenceManagerImpl pm)

  Description copied from interface: `StoreManager`
  Set a reference to the corresponding PersistenceManager. This method will be called before the StoreManager is used.

  Specified by:
    `setPersistenceManager` in interface `StoreManager`
  Overrides:
    `setPersistenceManager` in class `DelegatingStoreManager`

### begin

    public void begin()

  Description copied from interface: `StoreManager`
  Begin a data store transaction. If optimistic transactions are in use, this method will only be called when the user is ready to commit the transaction. At this time, the PersistenceManager will call this begin method, will store all modified data, and will call the commit method in succession, minimizing the length of the actual data store transaction. In this case, it is possible that the optimistic transaction does not have the latest versions of all instances (i.e. another transaction has modified the same instances and committed since the optimistic transaction started). On commit, an exception must be thrown on any attempt to overwrite data for an instance with an older version.

  Specified by:
    `begin` in interface `StoreManager`
  Overrides:
    `begin` in class `DelegatingStoreManager`

### commit

    public void commit()

  Description copied from interface: `StoreManager`
  Commit the current data store transaction.

  Specified by:
    `commit` in interface `StoreManager`
  Overrides:
    `commit` in class `DelegatingStoreManager`

### rollback

    public void rollback()

  Description copied from interface: `StoreManager`
  Rollback the current data store transaction.

  Specified by:
    `rollback` in interface `StoreManager`
  Overrides:
    `rollback` in class `DelegatingStoreManager`

### exists

    public boolean exists(java.lang.Object oid,
                          com.solarmetric.rd.kodo.meta.ClassMetaData meta)

  Description copied from interface: `StoreManager`
  Verify that the given instance exists in the data store; return false if it does not.

  Specified by:
    `exists` in interface `StoreManager`
  Overrides:
    `exists` in class `DelegatingStoreManager`

### synchVersion

    public boolean synchVersion(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm,
                                java.lang.Object conn)

  Description copied from interface: `StoreManager`
  Update the version information in the given state manager to the version stored in the data store.

  Specified by:
    `synchVersion` in interface `StoreManager`
  Overrides:
    `synchVersion` in class `DelegatingStoreManager`
  Parameters:
    `sm` - the instance to check
    `conn` - the current connection information, or null if not given to the calling method of the persistence manager
  Returns:
    true if the instance is up-to-date, false otherwise

### initialize

    public boolean initialize(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm,
                              com.solarmetric.rd.kodo.runtime.JDOState state,
                              java.lang.Object conn)

  Description copied from interface: `StoreManager`
  Initialize the given StateManager. The `oid` of the StateManager will be set, and the `meta` field of the StateManager will be set to the class of the instance to load, or possibly one of its superclasses. Initialization involves first calling the `StateManagerImpl.initialize(javax.jdo.spi.PersistenceCapable, com.solarmetric.rd.kodo.runtime.JDOState)` method with a new instance of the correct type constructed with the `JDOImplHelper#newInstance(Class,StateManager,Object)` method (this will reset the `meta` field of the StateManager if the actual type was a subclass), then possibly loading fields if if desired. If this method is called during a data store transaction, the instance's database record should be locked. Version information can be loaded if desired through the `StateManagerImpl.setVersion(java.lang.Object)` method.

  Specified by:
    `initialize` in interface `StoreManager`
  Overrides:
    `initialize` in class `DelegatingStoreManager`
  Parameters:
    `sm` - the instance to initialize
    `state` - the lifecycle state to initialize the state manager with
    `conn` - the current connection information, or null if not given to the calling method of the persistence manager
  Returns:
    true if the matching instance exists in the data store, false otherwise

### load

    public void load(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm,
                     int field,
                     java.lang.Object conn)

  Description copied from interface: `StoreManager`
  Load the given StateManager. Note that any collection or map types loaded into the StateManager will be proxied with the correct type; therefore the StoreManager does not have to load the same concrete collection/map types as the instance declares. However, array types must be consistent with the array type stored by the PersistenceCapable instance. If this method is called during a data store transaction, the instance should be locked. If the given state manager does not have its version set already, version information can be loaded if desired through the `StateManagerImpl.setVersion(java.lang.Object)` method.

  Specified by:
    `load` in interface `StoreManager`
  Overrides:
    `load` in class `DelegatingStoreManager`
  Parameters:
    `sm` - the instance to load
    `field` - the field to load; the field corrsponding to the metadata field at the given absolute index should be loaded; additional fields can be loaded if desired; attempting to load an additional field that has been dirtied will cause the load to be ignored
    `conn` - the current connection information, or null if not given to the calling method of the persistence manager

### flush

    public java.util.Collection flush(java.util.Collection states)

  Description copied from interface: `StoreManager`
  Flush the given state manager collection to the datastore, returning a collection of user exceptions encountered during flushing. The given state collection may include states that do not require data store action, such as persistent-clean instances. For datastore updates and inserts, the dirty fields of each state should be flushed. Datastore version information should be updated during flush, and the state manager's version indicator updated through the `StateManagerImpl.setNextVersion(java.lang.Object)` method. The current version will roll over to this next version upon successful commit.

  Specified by:
    `flush` in interface `StoreManager`
  Overrides:
    `flush` in class `DelegatingStoreManager`

### newPCData

    protected com.solarmetric.rd.kodo.runtime.PCData newPCData(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm)

Overview | Package | Class | Tree | Deprecated | Index | Help
| SolarMetric Kodo JDO 2.5.0 Reverse Schema Tool
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright 2001,2002,2003 SolarMetric, Inc. All Rights Reserved.