org.apache.openjpa.slice
Class DistributedBrokerImpl

java.lang.Object
  extended by org.apache.openjpa.kernel.BrokerImpl
      extended by org.apache.openjpa.kernel.FinalizingBrokerImpl
          extended by org.apache.openjpa.slice.DistributedBrokerImpl
All Implemented Interfaces:
Serializable, Cloneable, Synchronization, CallbackModes, AutoClear, AutoDetach, Broker, ConnectionRetainModes, DetachState, FindCallbacks, LockLevels, RestoreState, StoreContext, Closeable

public class DistributedBrokerImpl
extends FinalizingBrokerImpl

A specialized Broker to associate slice identifiers with the StateManagers as they are persisted in a cascade. This intervention helps the user to define distribution policy only for root instances i.e. the instances that are explicit argument to persist() call. The cascaded instances are assigned the same slice to honor collocation constraint.

Author:
Pinaki Poddar
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.apache.openjpa.kernel.BrokerImpl
FLUSH_COMMIT, FLUSH_INC, FLUSH_LOGICAL, FLUSH_ROLLBACK
 
Fields inherited from interface org.apache.openjpa.kernel.StoreContext
EXCLUDE_ALL, OID_ALLOW_NEW, OID_COPY, OID_NODELETED, OID_NOVALIDATE
 
Fields inherited from interface org.apache.openjpa.kernel.ConnectionRetainModes
CONN_RETAIN_ALWAYS, CONN_RETAIN_DEMAND, CONN_RETAIN_TRANS
 
Fields inherited from interface org.apache.openjpa.kernel.DetachState
DETACH_ALL, DETACH_FETCH_GROUPS, DETACH_FGS, DETACH_LOADED
 
Fields inherited from interface org.apache.openjpa.kernel.LockLevels
LOCK_NONE, LOCK_READ, LOCK_WRITE
 
Fields inherited from interface org.apache.openjpa.kernel.RestoreState
RESTORE_ALL, RESTORE_IMMUTABLE, RESTORE_NONE
 
Fields inherited from interface org.apache.openjpa.kernel.AutoClear
CLEAR_ALL, CLEAR_DATASTORE
 
Fields inherited from interface org.apache.openjpa.kernel.AutoDetach
DETACH_CLOSE, DETACH_COMMIT, DETACH_NONTXREAD, DETACH_ROLLBACK
 
Fields inherited from interface org.apache.openjpa.event.CallbackModes
CALLBACK_FAIL_FAST, CALLBACK_IGNORE, CALLBACK_LOG, CALLBACK_RETHROW, CALLBACK_ROLLBACK
 
Constructor Summary
DistributedBrokerImpl()
           
 
Method Summary
 boolean endOperation()
          Mark the operation over.
 OpenJPAStateManager persist(Object pc, Object id, boolean explicit, OpCallbacks call)
          Assigns slice identifier to the resultant StateManager as initialized by the super class implementation.
 
Methods inherited from class org.apache.openjpa.kernel.FinalizingBrokerImpl
finalize
 
Methods inherited from class org.apache.openjpa.kernel.BrokerImpl
addLifecycleListener, addTransactionListener, afterCompletion, assertActiveTransaction, assertNontransactionalRead, assertOpen, assertPersistenceCapable, assertWriteOperation, assignObjectId, attach, attachAll, beforeCompletion, begin, beginOperation, beginStore, cancelAll, checkForDuplicateId, clone, close, commit, commitAndResume, delete, deleteAll, detach, detachAll, detachAll, detachAll, dirtyType, embed, endTransaction, evict, evictAll, evictAll, evictAll, extentIterator, find, find, find, findAll, findAll, findAll, findCached, flush, flush, free, getAutoClear, getAutoDetach, getBroker, getBrokerFactory, getClassLoader, getConfiguration, getConnection, getConnectionPassword, getConnectionRetainMode, getConnectionUserName, getDeletedTypes, getDetachState, getDirtyObjects, getDirtyStates, getEvictFromDataCache, getFetchConfiguration, getIdentitySequence, getIgnoreChanges, getInverseManager, getLifecycleEventManager, getLifecycleListenerCallbackMode, getLockLevel, getLockManager, getManagedObjects, getManagedRuntime, getManagedStates, getMultithreaded, getNontransactionalRead, getNontransactionalWrite, getObjectId, getObjectIdType, getOperatingSet, getOptimistic, getOrderDirtyObjects, getPendingTransactionalObjects, getPendingTransactionalStates, getPersistedTypes, getPopulateDataCache, getRestoreState, getRetainState, getRollbackCause, getRollbackOnly, getStateManager, getStateManagerImpl, getStateManagerImplById, getStoreManager, getSynchronization, getSyncWithManagedTransactions, getTransactionalObjects, getTransactionalStates, getTransactionListenerCallbackMode, getUpdatedTypes, getUserObject, getValueSequence, getVersion, hasConnection, initialize, initialize, isActive, isClosed, isCloseInvoked, isDeleted, isDetached, isDetachedNew, isDirty, isManaged, isNew, isPersistent, isStoreActive, isTrackChangesByType, isTransactional, lock, lock, lock, lockAll, lockAll, newExtent, newInstance, newManagedObjectCache, newObjectId, newQuery, newQuery, newQueryImpl, newStateManagerImpl, nontransactional, nontransactionalAll, persist, persist, persist, persistAll, persistAll, popFetchConfiguration, preFlush, processArgument, processReturn, pushFetchConfiguration, putUserObject, refresh, refreshAll, refreshInternal, refreshInternal, release, releaseAll, releaseSavepoint, releaseSavepoint, removeLifecycleListener, removeTransactionListener, retrieve, retrieveAll, rollback, rollbackAndResume, rollbackToSavepoint, rollbackToSavepoint, setAuthentication, setAutoClear, setAutoDetach, setAutoDetach, setDetachedNew, setDetachState, setEvictFromDataCache, setIgnoreChanges, setImplicitBehavior, setLifecycleListenerCallbackMode, setMultithreaded, setNontransactionalRead, setNontransactionalWrite, setOptimistic, setOrderDirtyObjects, setPopulateDataCache, setRestoreState, setRetainState, setRollbackOnly, setRollbackOnly, setSavepoint, setSynchronization, setSyncWithManagedTransactions, setTrackChangesByType, setTransactionListenerCallbackMode, syncWithManagedTransaction, transactional, transactionalAll, unlock, validateChanges
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DistributedBrokerImpl

public DistributedBrokerImpl()
Method Detail

persist

public OpenJPAStateManager persist(Object pc,
                                   Object id,
                                   boolean explicit,
                                   OpCallbacks call)
Assigns slice identifier to the resultant StateManager as initialized by the super class implementation. The slice identifier is decided by DistributionPolicy for given pc if it is a root instance i.e. the argument of the user application's persist() call. The cascaded instances are detected by non-empty status of the current operating set. The slice is assigned only if a StateManager has never been assigned before.

Overrides:
persist in class BrokerImpl

endOperation

public boolean endOperation()
Description copied from class: BrokerImpl
Mark the operation over. If outermost caller of stack, returns true and will detach managed instances if necessary.

Specified by:
endOperation in interface Broker
Overrides:
endOperation in class BrokerImpl
Returns:
whether this is the outermost operation on the stack


Copyright © 2006-2009 Apache Software Foundation. All Rights Reserved.