org.jboss.ejb.plugins
Class CMPPersistenceManager

java.lang.Object
  extended byorg.jboss.ejb.plugins.CMPPersistenceManager
All Implemented Interfaces:
AllowedOperationsFlags, ContainerPlugin, EntityPersistenceManager, org.jboss.system.Service

public class CMPPersistenceManager
extends Object
implements EntityPersistenceManager

The CMP Persistence Manager implements the semantics of the CMP EJB 1.1 call back specification.

This Manager works with a "EntityPersistenceStore" that takes care of the physical storing of instances (JAWS, JDBC O/R, FILE, Object).

Version:
$Revision: 1.56 $
Author:
Marc Fleury, Dan Christopherson, Bill Burke, Andreas Schaefer, Dain Sundstrom, Alex Loubyansky

Field Summary
 
Fields inherited from interface org.jboss.ejb.AllowedOperationsFlags
IN_AFTER_BEGIN, IN_AFTER_COMPLETION, IN_BEFORE_COMPLETION, IN_BUSINESS_METHOD, IN_EJB_ACTIVATE, IN_EJB_CREATE, IN_EJB_FIND, IN_EJB_HOME, IN_EJB_LOAD, IN_EJB_PASSIVATE, IN_EJB_POST_CREATE, IN_EJB_REMOVE, IN_EJB_STORE, IN_EJB_TIMEOUT, IN_INTERCEPTOR_METHOD, IN_SERVICE_ENDPOINT_METHOD, IN_SET_ENTITY_CONTEXT, IN_SET_MESSAGE_DRIVEN_CONTEXT, IN_SET_SESSION_CONTEXT, IN_UNSET_ENTITY_CONTEXT, NOT_ALLOWED
 
Constructor Summary
CMPPersistenceManager()
           
 
Method Summary
 void activateEntity(EntityEnterpriseContext ctx)
          This method is called when an entity shall be activated.
 void create()
           
 Object createBeanClassInstance()
          Returns a new instance of the bean class or a subclass of the bean class.
 void createEntity(Method m, Object[] args, EntityEnterpriseContext ctx)
          This method is called whenever an entity is to be created.
 void destroy()
           
 Collection findEntities(Method finderMethod, Object[] args, EntityEnterpriseContext ctx, GenericEntityObjectFactory factory)
          find multiple entities
 Object findEntity(Method finderMethod, Object[] args, EntityEnterpriseContext ctx, GenericEntityObjectFactory factory)
          This method is called when single entities are to be found.
 EntityPersistenceStore getPersistenceStore()
          Gets the entity persistence store.
 void invokeEjbStore(EntityEnterpriseContext ctx)
          Invokes ejbStore on the instance.
protected  void invokeLoad(EntityEnterpriseContext ctx)
           
 boolean isModified(EntityEnterpriseContext ctx)
          This method is used to determined whether the instance was modified.
 boolean isStoreRequired(EntityEnterpriseContext ctx)
          This method is used to determine if an entity should be stored.
 void loadEntity(EntityEnterpriseContext ctx)
          This method is called whenever an entity shall be load from the underlying storage.
 void passivateEntity(EntityEnterpriseContext ctx)
          This method is called when an entity shall be passivate.
 void postCreateEntity(Method m, Object[] args, EntityEnterpriseContext ctx)
          This method is called whenever an entity is to be created.
 void removeEntity(EntityEnterpriseContext ctx)
          This method is called when an entity shall be removed from the underlying storage.
 void setContainer(Container c)
          This callback is set by the container so that the plugin may access it
 void setPersistenceStore(EntityPersistenceStore store)
           
 void start()
           
 void stop()
           
 void storeEntity(EntityEnterpriseContext ctx)
          This method is called whenever an entity shall be stored to the underlying storage.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CMPPersistenceManager

public CMPPersistenceManager()
Method Detail

setContainer

public void setContainer(Container c)
Description copied from interface: ContainerPlugin
This callback is set by the container so that the plugin may access it

Specified by:
setContainer in interface ContainerPlugin
Parameters:
c - The container using this plugin. This may be null if the plugin is being disassociated from a container.

getPersistenceStore

public EntityPersistenceStore getPersistenceStore()
Gets the entity persistence store.


setPersistenceStore

public void setPersistenceStore(EntityPersistenceStore store)

create

public void create()
            throws Exception
Specified by:
create in interface org.jboss.system.Service
Throws:
Exception

createBeanClassInstance

public Object createBeanClassInstance()
                               throws Exception
Returns a new instance of the bean class or a subclass of the bean class.

Specified by:
createBeanClassInstance in interface EntityPersistenceManager
Returns:
the new instance
Throws:
Exception

start

public void start()
           throws Exception
Specified by:
start in interface org.jboss.system.Service
Throws:
Exception

stop

public void stop()
Specified by:
stop in interface org.jboss.system.Service

destroy

public void destroy()
Specified by:
destroy in interface org.jboss.system.Service

createEntity

public void createEntity(Method m,
                         Object[] args,
                         EntityEnterpriseContext ctx)
                  throws Exception
Description copied from interface: EntityPersistenceManager
This method is called whenever an entity is to be created. The persistence manager is responsible for calling the ejbCreate method on the instance and to handle the results properly wrt the persistent store.

Specified by:
createEntity in interface EntityPersistenceManager
Parameters:
m - the create method in the home interface that was called
args - any create parameters
ctx - the instance being used for this create call
Throws:
Exception

postCreateEntity

public void postCreateEntity(Method m,
                             Object[] args,
                             EntityEnterpriseContext ctx)
                      throws Exception
Description copied from interface: EntityPersistenceManager
This method is called whenever an entity is to be created. The persistence manager is responsible for calling the ejbPostCreate method on the instance and to handle the results properly wrt the persistent store.

Specified by:
postCreateEntity in interface EntityPersistenceManager
Parameters:
m - the create method in the home interface that was called
args - any create parameters
ctx - the instance being used for this create call
Throws:
Exception

findEntity

public Object findEntity(Method finderMethod,
                         Object[] args,
                         EntityEnterpriseContext ctx,
                         GenericEntityObjectFactory factory)
                  throws Exception
Description copied from interface: EntityPersistenceManager
This method is called when single entities are to be found. The persistence manager must find out whether the wanted instance is available in the persistence store, and if so it shall use the EJBProxyFactory plugin to create an EJBObject to the instance, which is to be returned as result.

Specified by:
findEntity in interface EntityPersistenceManager
Parameters:
finderMethod - the find method in the home interface that was called
args - any finder parameters
ctx - the instance to use for the finder call
Returns:
an EJBObject representing the found entity
Throws:
Exception

findEntities

public Collection findEntities(Method finderMethod,
                               Object[] args,
                               EntityEnterpriseContext ctx,
                               GenericEntityObjectFactory factory)
                        throws Exception
find multiple entities

Specified by:
findEntities in interface EntityPersistenceManager
Parameters:
finderMethod - the find method in the home interface that was called
args - any finder parameters
ctx - the instance to use for the finder call
Returns:
an EJBObject collection representing the found entities
Throws:
Exception

activateEntity

public void activateEntity(EntityEnterpriseContext ctx)
                    throws RemoteException
Description copied from interface: EntityPersistenceManager
This method is called when an entity shall be activated. The persistence manager must call the ejbActivate method on the instance.

Specified by:
activateEntity in interface EntityPersistenceManager
Parameters:
ctx - the instance to use for the activation
Throws:
RemoteException - thrown if some system exception occurs

loadEntity

public void loadEntity(EntityEnterpriseContext ctx)
                throws RemoteException
Description copied from interface: EntityPersistenceManager
This method is called whenever an entity shall be load from the underlying storage. The persistence manager must load the state from the underlying storage and then call ejbLoad on the supplied instance.

Specified by:
loadEntity in interface EntityPersistenceManager
Parameters:
ctx - the instance to synchronize
Throws:
RemoteException - thrown if some system exception occurs

isStoreRequired

public boolean isStoreRequired(EntityEnterpriseContext ctx)
                        throws Exception
Description copied from interface: EntityPersistenceManager
This method is used to determine if an entity should be stored.

Specified by:
isStoreRequired in interface EntityPersistenceManager
Parameters:
ctx - the instance to check
Returns:
true, if the entity has been modified
Throws:
Exception - thrown if some system exception occurs

isModified

public boolean isModified(EntityEnterpriseContext ctx)
                   throws Exception
Description copied from interface: EntityPersistenceManager
This method is used to determined whether the instance was modified. NOTE, even if the method returns true the isStoreRequired for this same instance might return false, e.g. a CMR field that doesn't have a foreign key was modified.

Specified by:
isModified in interface EntityPersistenceManager
Parameters:
ctx -
Returns:
Throws:
Exception

storeEntity

public void storeEntity(EntityEnterpriseContext ctx)
                 throws RemoteException
Description copied from interface: EntityPersistenceManager
This method is called whenever an entity shall be stored to the underlying storage. The persistence manager must call ejbStore on the supplied instance and then store the state to the underlying storage.

Specified by:
storeEntity in interface EntityPersistenceManager
Parameters:
ctx - the instance to synchronize
Throws:
RemoteException - thrown if some system exception occurs

invokeEjbStore

public void invokeEjbStore(EntityEnterpriseContext ctx)
                    throws RemoteException
Description copied from interface: EntityPersistenceManager
Invokes ejbStore on the instance.

Specified by:
invokeEjbStore in interface EntityPersistenceManager
Parameters:
ctx -
Throws:
RemoteException

passivateEntity

public void passivateEntity(EntityEnterpriseContext ctx)
                     throws RemoteException
Description copied from interface: EntityPersistenceManager
This method is called when an entity shall be passivate. The persistence manager must call the ejbPassivate method on the instance.

Specified by:
passivateEntity in interface EntityPersistenceManager
Parameters:
ctx - the instance to passivate
Throws:
RemoteException - thrown if some system exception occurs

removeEntity

public void removeEntity(EntityEnterpriseContext ctx)
                  throws RemoteException,
                         javax.ejb.RemoveException
Description copied from interface: EntityPersistenceManager
This method is called when an entity shall be removed from the underlying storage. The persistence manager must call ejbRemove on the instance and then remove its state from the underlying storage.

Specified by:
removeEntity in interface EntityPersistenceManager
Parameters:
ctx - the instance to remove
Throws:
javax.ejb.RemoveException - thrown if the instance could not be removed
RemoteException - thrown if some system exception occurs

invokeLoad

protected void invokeLoad(EntityEnterpriseContext ctx)
                   throws RemoteException
Throws:
RemoteException


Copyright © 2002 JBoss Group, LLC. All Rights Reserved.