| EJBContext.java |
/*
* JBoss, the OpenSource EJB server
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package javax.ejb;
import javax.transaction.UserTransaction;
import java.security.Identity;
import java.security.Principal;
import java.util.Properties;
/**
* <P>The EJBContext interface provides an instance with access to the
* container-provided runtime context of an enterprise Bean instance.</P>
* <P>This interface is extended by the SessionContext and EntityContext
* interface to provide additional methods specific to the enterprise
* Bean type.</P>
*
* @version $Revision: 1.9.6.1 $
*/
public interface EJBContext
{
/**
* Obtain the enterprise bean's remote home interface.
*
* @return The enterprise bean's remote home interface.
* @throws java.lang.IllegalStateException
* - if the enterprise bean does not have a remote home interface.
*/
public EJBHome getEJBHome();
/**
* Obtain the enterprise bean's local home interface.
*
* @return The enterprise bean's local home interface.
* @throws java.lang.IllegalStateException
* - if the enterprise bean does not have a local home interface.
*/
public EJBLocalHome getEJBLocalHome();
/**
* <B>Deprecated.</B> <I>Use the JNDI naming context java:comp/env to access enterprise bean's environment.</I>
* <p/>
* <P>Obtain the enterprise bean's environment properties.</P>
* <p/>
* <P><B>Note:</B> If the enterprise bean has no environment properties this method returns an empty
* java.util.Properties object. This method never returns null.</P>
*
* @return The environment properties for the enterprise bean.
*/
public Properties getEnvironment();
/**
* <B>Deprecated.</B> <I>Use Principal getCallerPrincipal() instead.</I>
* <p/>
* <P>Obtain the java.security.Identity of the caller. This method is deprecated in EJB 1.1.
* The Container is allowed to return alway null from this method. The enterprise bean should use
* the getCallerPrincipal method instead.</P>
*
* @return The Identity object that identifies the caller.
*/
public Identity getCallerIdentity();
/**
* Obtains the java.security.Principal of the caller.
*
* @return The Principal object that identifies the caller. This method never returns null.
*/
public Principal getCallerPrincipal();
/**
* <B>Deprecated.</B> <I>Use boolean isCallerInRole(String roleName) instead.</I>
* <p/>
* <P>Test if the caller has a given role.</P>
* <p/>
* <P>This method is deprecated in EJB 1.1. The enterprise bean should use the
* isCallerInRole(String roleName) method instead.</P>
*
* @param role - The java.security.Identity of the role to be tested.
* @return True if the caller has the specified role.
*/
public boolean isCallerInRole(Identity role);
/**
* Tests if the caller has a given role.
*
* @param roleName - The name of the security role. The role must be one of the security roles that
* is defined in the deployment descriptor.
* @return True if the caller has the specified role.
*/
public boolean isCallerInRole(String roleName);
/**
* Obtain the transaction demarcation interface. Only enterprise beans with bean-managed transactions
* are allowed to to use the UserTransaction interface. As entity beans must always use container-managed
* transactions, only session beans with bean-managed transactions are allowed to invoke this method.
*
* @return The UserTransaction interface that the enterprise bean instance can use for transaction demarcation.
* @throws java.lang.IllegalStateException
* - The Container throws the exception if the instance is not
* allowed to use the UserTransaction interface (i.e. the instance is of a bean with container-managed
* transactions).
*/
public UserTransaction getUserTransaction() throws IllegalStateException;
/**
* Mark the current transaction for rollback. The transaction will become permanently marked for rollback.
* A transaction marked for rollback can never commit. Only enterprise beans with container-managed
* transactions are allowed to use this method.
*
* @throws java.lang.IllegalStateException
* - The Container throws the exception if the instance is not
* allowed to use this method (i.e. the instance is of a bean with bean-managed transactions).
*/
public void setRollbackOnly() throws IllegalStateException;
/**
* Test if the transaction has been marked for rollback only. An enterprise bean instance can use
* this operation, for example, to test after an exception has been caught, whether it is fruitless
* to continue computation on behalf of the current transaction. Only enterprise beans with
* container-managed transactions are allowed to use this method.</P>
*
* @return True if the current transaction is marked for rollback, false otherwise.
* @throws java.lang.IllegalStateException
* - The Container throws the exception if the instance
* is not allowed to use this method (i.e. the instance is of a bean with bean-managed transactions).
*/
public boolean getRollbackOnly() throws IllegalStateException;
/**
* Get access to the EJB Timer Service.
*
* @throws IllegalStateException The Container throws the exception
* if the instance is not allowed to use this method (e.g. if the bean
* is a stateful session bean)
*/
public TimerService getTimerService() throws IllegalStateException;
/**
* New from EJB 3.0. A JNDI lookup method that doesn't throw exceptions
*
* @param name
* @return returns null if JNDI lookup finds nothing
*/
public Object lookup(String name);
}
| EJBContext.java |