org.objectweb.easybeans.container.session.stateful
Class StatefulSessionFactory

java.lang.Object
  extended by org.objectweb.easybeans.container.AbsFactory<PoolType>
      extended by org.objectweb.easybeans.container.session.SessionFactory<EasyBeansSFSB>
          extended by org.objectweb.easybeans.container.session.stateful.StatefulSessionFactory
All Implemented Interfaces:
Factory<EasyBeansSFSB,java.lang.Long>, PoolFactory<EasyBeansSFSB,java.lang.Long>

public class StatefulSessionFactory
extends SessionFactory<EasyBeansSFSB>
implements PoolFactory<EasyBeansSFSB,java.lang.Long>

This class manages the stateless session bean and its creation/lifecycle.

Author:
Florent Benoit

Field Summary
private  long idCount
          Id generator.
private static JLog logger
          Logger.
 
Constructor Summary
StatefulSessionFactory(java.lang.String className, EZBContainer container)
          Builds a new factory with a given name and its container.
 
Method Summary
 EasyBeansSFSB create(java.lang.Long clue)
          Creates an instance with the given hint.
protected  EasyBeansSFSB getBean(java.lang.Long beanId)
          Gets a bean for the given id.
protected  java.lang.Long getId(java.lang.Long beanId)
          Gets a new ID or a null value.
 boolean isMatching(EasyBeansSFSB bean, java.lang.Long clue)
          Checks if the given object with the given clue is matching.
 EJBResponse localCall(long hash, java.lang.Object[] methodArgs, java.lang.Long beanId)
          Do a local call on a method of this factory.
 void remove(EasyBeansSFSB instance)
          Callback called when object is gonna be removed.
 boolean validate(EasyBeansSFSB object, PoolEntryStatistics stats)
          Validate an instance by giving some statistics.
 
Methods inherited from class org.objectweb.easybeans.container.session.SessionFactory
getBeanInfo, getSessionBeanInfo, rpcInvoke, setSessionBeanInfo, stop
 
Methods inherited from class org.objectweb.easybeans.container.AbsFactory
getBeanClass, getClassName, getContainer, getHashes, getId, getJavaContext, getNamingManager, getPool, init, injectResources, setBeanClass, setHashes, setJavaContext, setPool
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

private static JLog logger
Logger.


idCount

private long idCount
Id generator.

Constructor Detail

StatefulSessionFactory

public StatefulSessionFactory(java.lang.String className,
                              EZBContainer container)
                       throws FactoryException
Builds a new factory with a given name and its container.

Parameters:
className - name of this factory (name of class that is managed)
container - the root component of this factory.
Throws:
FactoryException - if class can't be loaded.
Method Detail

isMatching

public boolean isMatching(EasyBeansSFSB bean,
                          java.lang.Long clue)
Checks if the given object with the given clue is matching.

Specified by:
isMatching in interface PoolFactory<EasyBeansSFSB,java.lang.Long>
Parameters:
bean - given object against which the check should be done.
clue - the object used as clue to check the matching.
Returns:
true if it is matching, else false.

validate

public boolean validate(EasyBeansSFSB object,
                        PoolEntryStatistics stats)
Validate an instance by giving some statistics.

Specified by:
validate in interface PoolFactory<EasyBeansSFSB,java.lang.Long>
Parameters:
object - the instance to validate
stats - some statistics to help in the validating process.
Returns:
true if the element is valid, else false.

getId

protected java.lang.Long getId(java.lang.Long beanId)
Gets a new ID or a null value.

Specified by:
getId in class SessionFactory<EasyBeansSFSB>
Parameters:
beanId - given id.
Returns:
new id

create

public EasyBeansSFSB create(java.lang.Long clue)
                     throws PoolException
Creates an instance with the given hint.

Specified by:
create in interface PoolFactory<EasyBeansSFSB,java.lang.Long>
Overrides:
create in class SessionFactory<EasyBeansSFSB>
Parameters:
clue - a clue given by the Pool. Could be null.
Returns:
the created instance.
Throws:
PoolException - if instance cannot be created.

getBean

protected EasyBeansSFSB getBean(java.lang.Long beanId)
                         throws java.lang.IllegalArgumentException
Gets a bean for the given id.

Specified by:
getBean in class SessionFactory<EasyBeansSFSB>
Parameters:
beanId - id of the expected bean.
Returns:
a Stateless bean.
Throws:
java.lang.IllegalArgumentException - if bean is not found.

remove

public void remove(EasyBeansSFSB instance)
Callback called when object is gonna be removed.

Specified by:
remove in interface PoolFactory<EasyBeansSFSB,java.lang.Long>
Overrides:
remove in class AbsFactory<EasyBeansSFSB>
Parameters:
instance - that is being removed from the pool.

localCall

public EJBResponse localCall(long hash,
                             java.lang.Object[] methodArgs,
                             java.lang.Long beanId)
Do a local call on a method of this factory.

Specified by:
localCall in interface Factory<EasyBeansSFSB,java.lang.Long>
Specified by:
localCall in class SessionFactory<EasyBeansSFSB>
Parameters:
hash - the hash of the method to execute.
methodArgs - the arguments of the method
beanId - the id of the bean that we want (stateful).
Returns:
response container new id (if any) and value.