001: /**
002: * JOnAS: Java(TM) Open Application Server
003: * Copyright (C) 1999 Bull S.A.
004: * Contact: jonas-team@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: JMetaData.java 6072 2005-01-12 14:40:21Z pelletib $
023: * --------------------------------------------------------------------------
024: */package org.objectweb.jonas_ejb.svc;
025:
026: import java.io.Serializable;
027:
028: import javax.ejb.EJBException;
029: import javax.ejb.EJBHome;
030: import javax.ejb.EJBMetaData;
031:
032: import java.util.logging.Level;
033: import java.util.logging.Logger;
034:
035: /**
036: * This class is a Serializable class that allows a client to obtain the
037: * enterprise Bean's meta-data information.
038: * @author Philippe Coq
039: */
040: public class JMetaData implements EJBMetaData, Serializable {
041:
042: /**
043: * JDK logger to be portable
044: */
045: private static Logger logger = Logger
046: .getLogger("org.objectweb.jonas_ejb.svc");
047:
048: /**
049: * EJB Home
050: */
051: private EJBHome home;
052:
053: /**
054: * EJB Home class
055: */
056: private Class homeClass;
057:
058: /**
059: * EJB Remote class
060: */
061: private Class remoteClass;
062:
063: /**
064: * Primary Key Home class
065: */
066: private Class primaryKeyClass;
067:
068: /**
069: * True if is a Session Bean
070: */
071: private boolean isSession;
072:
073: /**
074: * True if is a Stateless Session Bean
075: */
076: private boolean isStatelessSession;
077:
078: /**
079: * Constructor
080: * @param home The EJBHome
081: * @param homeClass EJB Home class
082: * @param remoteClass EJB Remote class
083: * @param isSession true if is a Session Bean
084: * @param isStatelessSession true if is a StatelessSessionBean
085: * @param primaryKeyClass primary key class
086: */
087: public JMetaData(EJBHome home, Class homeClass, Class remoteClass,
088: boolean isSession, boolean isStatelessSession,
089: Class primaryKeyClass) {
090: logger.log(Level.FINE, "");
091: this .home = home;
092: this .homeClass = homeClass;
093: this .remoteClass = remoteClass;
094: this .isSession = isSession;
095: this .isStatelessSession = isStatelessSession;
096: this .primaryKeyClass = primaryKeyClass;
097: }
098:
099: // -----------------------------------------------------------------------
100: // EJBMetaData implementation
101: // -----------------------------------------------------------------------
102:
103: /**
104: * @return the home interface of the enterprise Bean.
105: */
106: public EJBHome getEJBHome() {
107: return home;
108: }
109:
110: /**
111: * @return the Class object for the enterprise Bean's home interface.
112: */
113: public Class getHomeInterfaceClass() {
114: return homeClass;
115: }
116:
117: /**
118: * @return the Class object for the enterprise Bean's primary key class.
119: */
120: public Class getPrimaryKeyClass() {
121: if (isSession) {
122: throw new EJBException(
123: "getPrimaryKeyClass() not allowed for session");
124: }
125: return primaryKeyClass;
126: }
127:
128: /**
129: * @return the Class object for the enterprise Bean's remote interface.
130: */
131: public Class getRemoteInterfaceClass() {
132: return remoteClass;
133: }
134:
135: /**
136: * @return True if the enterprise Bean's type is "session".
137: */
138: public boolean isSession() {
139: return isSession;
140: }
141:
142: /**
143: * @return True if the type of the enterprise Bean is stateless session.
144: */
145: public boolean isStatelessSession() {
146: return isStatelessSession;
147: }
148:
149: }
|