org.jboss.ejb.plugins.cmp.jdbc2
Class JDBCStoreManager2

java.lang.Object
  extended by org.jboss.ejb.plugins.cmp.jdbc2.JDBCStoreManager2
All Implemented Interfaces:
AllowedOperationsFlags, ContainerPlugin, EntityPersistenceStore, JDBCEntityPersistenceStore, org.jboss.system.Service

public class JDBCStoreManager2
extends Object
implements JDBCEntityPersistenceStore

Version:
$Revision: 1.8.2.5 $
Author:
Alexey 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
JDBCStoreManager2()
           
 
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.
 Object 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 instance, GenericEntityObjectFactory factory)
          This method is called when collections of entities are to be found.
 Object findEntity(Method finderMethod, Object[] args, EntityEnterpriseContext instance, GenericEntityObjectFactory factory)
          This method is called when single entities are to be found.
 Object getApplicationData(Object key)
           
 Catalog getCatalog()
           
 EntityContainer getContainer()
           
 JDBCAbstractEntityBridge getEntityBridge()
           
 JDBCTypeFactory getJDBCTypeFactory()
           
 JDBCEntityMetaData getMetaData()
           
 QueryFactory getQueryFactory()
           
 Schema getSchema()
           
 void initEntity(EntityEnterpriseContext ctx)
          Initializes the instance context.
protected  void initStoreManager()
           
 boolean isCascadeDeleted(Object key)
           
 boolean isModified(EntityEnterpriseContext instance)
          This method is used to determined whether the instance was modified.
 boolean isStoreRequired(EntityEnterpriseContext instance)
          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.
 Object postCreateEntity(Method m, Object[] args, EntityEnterpriseContext ctx)
          This method is called after the createEntity.
 void putApplicationData(Object key, Object value)
           
 boolean registerCascadeDelete(Object key, Object value)
           
 void removeEntity(EntityEnterpriseContext ctx)
          This method is called when an entity shall be removed from the underlying storage.
 void setContainer(Container con)
          This callback is set by the container so that the plugin may access it
 void start()
           
protected  void startStoreManager()
           
 void stop()
           
 void storeEntity(EntityEnterpriseContext instance)
          This method is called whenever an entity shall be stored to the underlying storage.
 void unregisterCascadeDelete(Object key)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JDBCStoreManager2

public JDBCStoreManager2()
Method Detail

getSchema

public Schema getSchema()

getCatalog

public Catalog getCatalog()
Specified by:
getCatalog in interface JDBCEntityPersistenceStore

getQueryFactory

public QueryFactory getQueryFactory()

registerCascadeDelete

public boolean registerCascadeDelete(Object key,
                                     Object value)

isCascadeDeleted

public boolean isCascadeDeleted(Object key)

unregisterCascadeDelete

public void unregisterCascadeDelete(Object key)

setContainer

public void setContainer(Container con)
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:
con - The container using this plugin. This may be null if the plugin is being disassociated from a container.

create

public void create()
            throws Exception
Specified by:
create in interface org.jboss.system.Service
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

getEntityBridge

public JDBCAbstractEntityBridge getEntityBridge()
Specified by:
getEntityBridge in interface JDBCEntityPersistenceStore

getMetaData

public JDBCEntityMetaData getMetaData()
Specified by:
getMetaData in interface JDBCEntityPersistenceStore

getJDBCTypeFactory

public JDBCTypeFactory getJDBCTypeFactory()
Specified by:
getJDBCTypeFactory in interface JDBCEntityPersistenceStore

getContainer

public EntityContainer getContainer()
Specified by:
getContainer in interface JDBCEntityPersistenceStore

getApplicationData

public Object getApplicationData(Object key)
Specified by:
getApplicationData in interface JDBCEntityPersistenceStore

putApplicationData

public void putApplicationData(Object key,
                               Object value)
Specified by:
putApplicationData in interface JDBCEntityPersistenceStore

createBeanClassInstance

public Object createBeanClassInstance()
                               throws Exception
Description copied from interface: EntityPersistenceStore
Returns a new instance of the bean class or a subclass of the bean class.

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

initEntity

public void initEntity(EntityEnterpriseContext ctx)
Description copied from interface: EntityPersistenceStore
Initializes the instance context.

This method is called before createEntity, and should resetStats the value of all cmpFields to 0 or null.

Specified by:
initEntity in interface EntityPersistenceStore

createEntity

public Object createEntity(Method m,
                           Object[] args,
                           EntityEnterpriseContext ctx)
                    throws javax.ejb.CreateException
Description copied from interface: EntityPersistenceStore
This method is called whenever an entity is to be created. The persistence manager is responsible for handling the results properly wrt the persistent store.

Specified by:
createEntity in interface EntityPersistenceStore
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
Returns:
The primary key computed by CMP PM or null for BMP
Throws:
javax.ejb.CreateException

postCreateEntity

public Object postCreateEntity(Method m,
                               Object[] args,
                               EntityEnterpriseContext ctx)
                        throws javax.ejb.CreateException
Description copied from interface: EntityPersistenceStore
This method is called after the createEntity. The persistence manager is responsible for handling the results properly wrt the persistent store.

Specified by:
postCreateEntity in interface EntityPersistenceStore
Parameters:
m - the ejbPostCreate method in the bean class that was called
args - any create parameters
ctx - the instance being used for this create call
Returns:
null
Throws:
javax.ejb.CreateException

findEntity

public Object findEntity(Method finderMethod,
                         Object[] args,
                         EntityEnterpriseContext instance,
                         GenericEntityObjectFactory factory)
                  throws javax.ejb.FinderException
Description copied from interface: EntityPersistenceStore
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, if so it returns the primary key of the object.

Specified by:
findEntity in interface EntityPersistenceStore
Parameters:
finderMethod - the find method in the home interface that was called
args - any finder parameters
instance - the instance to use for the finder call
Returns:
a primary key representing the found entity
Throws:
javax.ejb.FinderException

findEntities

public Collection findEntities(Method finderMethod,
                               Object[] args,
                               EntityEnterpriseContext instance,
                               GenericEntityObjectFactory factory)
                        throws javax.ejb.FinderException
Description copied from interface: EntityPersistenceStore
This method is called when collections of entities are to be found. The persistence manager must find out whether the wanted instances are available in the persistence store, and if so it must return a collection of primaryKeys.

Specified by:
findEntities in interface EntityPersistenceStore
Parameters:
finderMethod - the find method in the home interface that was called
args - any finder parameters
instance - the instance to use for the finder call
Returns:
an primary key collection representing the found entities
Throws:
javax.ejb.FinderException

activateEntity

public void activateEntity(EntityEnterpriseContext ctx)
Description copied from interface: EntityPersistenceStore
This method is called when an entity shall be activated.

With the PersistenceManager factorization most EJB calls should not exists However this calls permits us to introduce optimizations in the persistence store. Particularly the context has a "PersistenceContext" that a PersistenceStore can use (JAWS does for smart updates) and this is as good a callback as any other to set it up.

Specified by:
activateEntity in interface EntityPersistenceStore
Parameters:
ctx - the instance to use for the activation

loadEntity

public void loadEntity(EntityEnterpriseContext ctx)
Description copied from interface: EntityPersistenceStore
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 EntityPersistenceStore
Parameters:
ctx - the instance to synchronize

isStoreRequired

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

Specified by:
isStoreRequired in interface EntityPersistenceStore
Parameters:
instance - the instance to check
Returns:
true, if the entity has been modified

isModified

public boolean isModified(EntityEnterpriseContext instance)
                   throws Exception
Description copied from interface: EntityPersistenceStore
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 EntityPersistenceStore
Returns:
Throws:
Exception

storeEntity

public void storeEntity(EntityEnterpriseContext instance)
Description copied from interface: EntityPersistenceStore
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 EntityPersistenceStore
Parameters:
instance - the instance to synchronize

passivateEntity

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

See the activate discussion for the reason for exposing EJB callback calls to the store.

Specified by:
passivateEntity in interface EntityPersistenceStore
Parameters:
ctx - the instance to passivate

removeEntity

public void removeEntity(EntityEnterpriseContext ctx)
                  throws javax.ejb.RemoveException
Description copied from interface: EntityPersistenceStore
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 EntityPersistenceStore
Parameters:
ctx - the instance to remove
Throws:
javax.ejb.RemoveException - thrown if the instance could not be removed

initStoreManager

protected void initStoreManager()
                         throws Exception
Throws:
Exception

startStoreManager

protected void startStoreManager()
                          throws Exception
Throws:
Exception


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