001: /**
002: * EasyBeans
003: * Copyright (C) 2006 Bull S.A.S.
004: * Contact: easybeans@objectweb.org
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2.1 of the License, or any later version.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
019: * USA
020: *
021: * --------------------------------------------------------------------------
022: * $Id: EntityBean.java 1100 2006-08-16 13:05:31Z benoitf $
023: * --------------------------------------------------------------------------
024: */package javax.ejb;
025:
026: import java.rmi.RemoteException;
027:
028: /**
029: * Each EJB 2.1 Entity bean needs to implement this interface.
030: * @see <a href="http://www.jcp.org/en/jsr/detail?id=220">EJB 3.0 specification</a>
031: * @author Florent Benoit
032: */
033: public interface EntityBean extends EnterpriseBean {
034:
035: /**
036: * Set the associated entity context. The container invokes this method on
037: * an instance after the instance has been created. This method is called in
038: * an unspecified transaction context.
039: * @param ctx An EntityContext interface for the instance. The instance
040: * should store the reference to the context in an instance variable.
041: * @throws EJBException Thrown by the method to indicate a failure caused by
042: * a system-level error.
043: * @throws RemoteException This exception is defined in the method signature
044: * to provide backward compatibility for enterprise beans written
045: * for the EJB 1.0 specification. Enterprise beans written for the
046: * EJB 1.1 specification should throw the javax.ejb.EJBException
047: * instead of this exception. Enterprise beans written for the
048: * EJB2.0 and higher specifications must throw the
049: * javax.ejb.EJBException instead of this exception.
050: */
051: void setEntityContext(EntityContext ctx) throws EJBException,
052: RemoteException;
053:
054: /**
055: * Unset the associated entity context. The container calls this method
056: * before removing the instance. This is the last method that the container
057: * invokes on the instance. The Java garbage collector will eventually
058: * invoke the finalize() method on the instance. This method is called in an
059: * unspecified transaction context.
060: * @throws EJBException Thrown by the method to indicate a failure caused by
061: * a system-level error.
062: * @throws RemoteException This exception is defined in the method signature
063: * to provide backward compatibility for enterprise beans written
064: * for the EJB 1.0 specification. Enterprise beans written for the
065: * EJB 1.1 specification should throw the javax.ejb.EJBException
066: * instead of this exception. Enterprise beans written for the
067: * EJB2.0 and higher specifications must throw the
068: * javax.ejb.EJBException instead of this exception.
069: */
070: void unsetEntityContext() throws EJBException, RemoteException;
071:
072: /**
073: * A container invokes this method before it removes the EJB object that is
074: * currently associated with the instance. This method is invoked when a
075: * client invokes a remove operation on the enterprise Bean's home interface
076: * or the EJB object's remote interface. This method transitions the
077: * instance from the ready state to the pool of available instances. This
078: * method is called in the transaction context of the remove operation.
079: * @throws RemoveException The enterprise Bean does not allow destruction of
080: * the object.
081: * @throws EJBException The enterprise Bean does not allow destruction of
082: * the object.
083: * @throws RemoteException This exception is defined in the method signature
084: * to provide backward compatibility for enterprise beans written
085: * for the EJB 1.0 specification. Enterprise beans written for the
086: * EJB 1.1 specification should throw the javax.ejb.EJBException
087: * instead of this exception. Enterprise beans written for the
088: * EJB2.0 and higher specifications must throw the
089: * javax.ejb.EJBException instead of this exception.
090: */
091: void ejbRemove() throws RemoveException, EJBException,
092: RemoteException;
093:
094: /**
095: * A container invokes this method when the instance is taken out of the
096: * pool of available instances to become associated with a specific EJB
097: * object. This method transitions the instance to the ready state. This
098: * method executes in an unspecified transaction context.
099: * @throws EJBException Thrown by the method to indicate a failure caused by
100: * a system-level error.
101: * @throws RemoteException This exception is defined in the method signature
102: * to provide backward compatibility for enterprise beans written
103: * for the EJB 1.0 specification. Enterprise beans written for the
104: * EJB 1.1 specification should throw the javax.ejb.EJBException
105: * instead of this exception. Enterprise beans written for the
106: * EJB2.0 and higher specifications must throw the
107: * javax.ejb.EJBException instead of this exception.
108: */
109: void ejbActivate() throws EJBException, RemoteException;
110:
111: /**
112: * A container invokes this method on an instance before the instance
113: * becomes disassociated with a specific EJB object. After this method
114: * completes, the container will place the instance into the pool of
115: * available instances. This method executes in an unspecified transaction
116: * context.
117: * @throws EJBException Thrown by the method to indicate a failure caused by
118: * a system-level error.
119: * @throws RemoteException This exception is defined in the method signature
120: * to provide backward compatibility for enterprise beans written
121: * for the EJB 1.0 specification. Enterprise beans written for the
122: * EJB 1.1 specification should throw the javax.ejb.EJBException
123: * instead of this exception. Enterprise beans written for the
124: * EJB2.0 and higher specifications must throw the
125: * javax.ejb.EJBException instead of this exception.
126: */
127: void ejbPassivate() throws EJBException, RemoteException;
128:
129: /**
130: * A container invokes this method to instruct the instance to synchronize
131: * its state by loading it state from the underlying database. This method
132: * always executes in the transaction context determined by the value of the
133: * transaction attribute in the deployment descriptor.
134: * @throws EJBException Thrown by the method to indicate a failure caused by
135: * a system-level error.
136: * @throws RemoteException This exception is defined in the method signature
137: * to provide backward compatibility for enterprise beans written
138: * for the EJB 1.0 specification. Enterprise beans written for the
139: * EJB 1.1 specification should throw the javax.ejb.EJBException
140: * instead of this exception. Enterprise beans written for the
141: * EJB2.0 and higher specifications must throw the
142: * javax.ejb.EJBException instead of this exception.
143: */
144: void ejbLoad() throws EJBException, RemoteException;
145:
146: /**
147: * A container invokes this method to instruct the instance to synchronize
148: * its state by storing it to the underlying database. This method always
149: * executes in the transaction context determined by the value of the
150: * transaction attribute in the deployment descriptor.
151: * @throws EJBException Thrown by the method to indicate a failure caused by
152: * a system-level error.
153: * @throws RemoteException This exception is defined in the method signature
154: * to provide backward compatibility for enterprise beans written
155: * for the EJB 1.0 specification. Enterprise beans written for the
156: * EJB 1.1 specification should throw the javax.ejb.EJBException
157: * instead of this exception. Enterprise beans written for the
158: * EJB2.0 and higher specifications must throw the
159: * javax.ejb.EJBException instead of this exception.
160: */
161: void ejbStore() throws EJBException, RemoteException;
162:
163: }
|