001: /*
002: * JBoss, Home of Professional Open Source.
003: * Copyright 2006, Red Hat Middleware LLC, and individual contributors
004: * as indicated by the @author tags. See the copyright.txt file in the
005: * distribution for a full listing of individual contributors.
006: *
007: * This is free software; you can redistribute it and/or modify it
008: * under the terms of the GNU Lesser General Public License as
009: * published by the Free Software Foundation; either version 2.1 of
010: * the License, or (at your option) any later version.
011: *
012: * This software is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015: * Lesser General Public License for more details.
016: *
017: * You should have received a copy of the GNU Lesser General Public
018: * License along with this software; if not, write to the Free
019: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
020: * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
021: */
022: package javax.ejb;
023:
024: import javax.xml.rpc.handler.MessageContext;
025:
026: /**
027: * The SessionContext interface provides access to the runtime session
028: * context that the container provides for a session enterprise Bean
029: * instance. The container passes the SessionContext interface to an
030: * instance after the instance has been created. The session context
031: * remains associated with the instance for the lifetime of the instance.
032: * @version $Revision: 62545 $
033: */
034: public interface SessionContext extends EJBContext {
035:
036: /**
037: * <P>Obtain a reference to the EJB local object that is currently associated with the instance.</P>
038: *
039: * <P>An instance of an entity enterprise Bean can call this method only when the instance is associated
040: * with an EJB local object identity, i.e. in the ejbActivate, ejbPassivate, ejbPostCreate, ejbRemove, ejbLoad,
041: * ejbStore, and business methods.</P>
042: *
043: * <P>An instance can use this method, for example, when it wants to pass a reference to itself in a method
044: * argument or result.</P>
045: *
046: * @return The EJB local object currently associated with the instance.
047: * @exception java.lang.IllegalStateException - Thrown if the instance invokes this method while the instance
048: * is in a state that does not allow the instance to invoke this method, or if the instance does not have a
049: * local interface.
050: */
051: public EJBLocalObject getEJBLocalObject()
052: throws IllegalStateException;
053:
054: /**
055: * <P>Obtain a reference to the EJB object that is currently associated with the instance.</P>
056: *
057: * <P>An instance of a session enterprise Bean can call this method at anytime between the ejbCreate()
058: * and ejbRemove() methods, including from within the ejbCreate() and ejbRemove() methods.</P>
059: *
060: * <P>An instance can use this method, for example, when it wants to pass a reference to itself in a method
061: * argument or result.</P>
062: *
063: * @return The EJB object currently associated with the instance.
064: * @exception java.lang.IllegalStateException - Thrown if the instance invokes this method while the instance
065: * is in a state that does not allow the instance to invoke this method, or if the instance does not have a
066: * remote interface.
067: */
068: public EJBObject getEJBObject() throws IllegalStateException;
069:
070: /** Obtain a reference to the JAX-RPC MessageContext. An instance of a
071: * stateless session bean can call this method from any business method
072: * invoked through its web service endpoint interface.
073: *
074: * @return The MessageContext for this web service invocation.
075: * @throws IllegalStateException - Thrown if this method is invoked while
076: * the instance is in a state that does not allow access to this method.
077: */
078: public MessageContext getMessageContext()
079: throws IllegalStateException;
080:
081: /** Returns the session bean's business interface. Only session beans with an EJB 3.0 business interface
082: * can call this method.
083: *
084: * @return The business interface associated with the instance.
085: * @throws IllegalStateException - Thrown if this method is invoked while
086: * the instance is in a state that does not allow access to this method.
087: */
088: public <T> T getBusinessObject(Class<T> businessInterface)
089: throws IllegalStateException;
090:
091: /** Returns the session bean business interface through which the bean was invoked.
092: *
093: * @return The business interface through which the bean was invoked.
094: * @throws IllegalStateException - Thrown if this method is invoked while
095: * the instance is in a state that does not allow access to this method.
096: */
097: public Class getInvokedBusinessInterface()
098: throws IllegalStateException;
099:
100: }
|