/******************************************************************************* * Copyright (c) 2001, 2005 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.jst.j2ee.ejb; import java.util.List; import org.eclipse.emf.common.util.EList; import org.eclipse.jem.java.JavaClass; import org.eclipse.jst.j2ee.common.CompatibilityDescriptionGroup; import org.eclipse.jst.j2ee.common.EjbRef; /** * The root element of the EJB deployment descriptor. It contains an optional description of the ejb-jar file; optional display name; optional small icon file name; optional large icon file * name; mandatory structural information about all included enterprise beans; a descriptor for container managed relationships, if any; an optional application-assembly descriptor; and an optional name of an ejb-client-jar file for the ejb-jar. * @since 1.0 */ public interface EJBJar extends CompatibilityDescriptionGroup{ /** * Return true if there are any ContainerManagedEntity beans in this jar. * @return boolean value */ boolean containsContainerManagedBeans() ; /** * Returns true if there is security role with the name specified in the argument * @param name the name of the security role * @return boolean value */ public boolean containsSecurityRole(String name); /** * Return List of BeanManaged beans in this jar. * @return java.util.List */ List getBeanManagedBeans() ; /** * Return List of ContainerManagedEntity beans in this jar. * @return java.util.List */ List getContainerManagedBeans() ; /** * Return List of EJB 1.1 ContainerManagedEntity beans in this jar. * @return java.util.List */ List getEJB11ContainerManagedBeans() ; /** * Return List of EJB 2.0 ContainerManagedEntity beans in this jar. * @return java.util.List */ List getEJB20ContainerManagedBeans() ; /** * Return List of MessageDriven beans in this jar. * @return java.util.List */ List getMessageDrivenBeans() ; /** * @return The list of EjbRelations references * A list of ejb-relation elements, which specify the container managed relationships. */ public List getEjbRelations(); /** * Return an enterprise bean referenced by the EjbRef, if one exists. The ejb-link value * of the ref must equate to a named enterprise bean contained in the jar; otherwise return * null * @param ref reference to the EjbRef * @return reference to the EnterpriseBean model */ public EnterpriseBean getEnterpiseBeanFromRef(EjbRef ref); /** * Return the enterprise bean model which has the bean name of ejbName * @param ejbName the name of the Enterprise Bean * @return reference to the EnterpriseBean model */ public EnterpriseBean getEnterpriseBeanNamed(String ejbName); /** * Return ALL EnterpriseBean(s) that are referencing @aJavaClass as a * home, remote, bean class, or key class. * @param aJavaClass a reference of type JavaClass * @return java.util.List of EnterpriseBean */ List getEnterpriseBeansWithReference(JavaClass aJavaClass) ; /** * Return the *FIRST* EnterpriseBean that is referencing @aJavaClass as its * home, remote, bean class, or key class. * @param aJavaClass a refernce of type JavaClass * @return reference to EnterpriseBean model */ EnterpriseBean getEnterpriseBeanWithReference(JavaClass aJavaClass) ; /** * Return List of Session beans in this jar. * @return java.util.List of EnterpriseBean */ List getSessionBeans() ; /** * Return boolean indicating if this EJB JAR was populated from an EJB 1.1 descriptor * @return boolean * @deprecated Use getVersionID() to determine module level */ boolean isVersion1_1Descriptor() ; /** * Return boolean indicating if this EJB JAR was populated from an EJB 2.0 descriptor * @return boolean * @deprecated Use getVersionID() to determine module level */ boolean isVersion2_0Descriptor() ; /** * Rename the security role contained in the assembly descriptor; for each enterprise bean, fix the role-link on any contained role * refs * @param existingRoleName the old name of the Security Role * @param newRoleName the new name of the Security Role */ public void renameSecurityRole(String existingRoleName, String newRoleName); /** *This returns the j2ee version id. Compare with J2EEVersionConstants to determine j2ee level *@throws IllegalStateException when an error is encountered while getting the version *@return the j2ee version of the Enterprise Bean in int */ public int getJ2EEVersionID() throws IllegalStateException ; /** * @generated This field/method will be replaced during code generation * @return The value of the EjbClientJar attribute * The optional ejb-client-jar element specifies a JAR file that contains the * class files necessary for a client program to access the enterprise beans in * the ejb-jar file. The Deployer should make the ejb-client JAR file accessible * to the client's class-loader. * Example:<ejb-client-jar>employee_service_client.jar<//ejb-client-jar> */ String getEjbClientJar(); /** * @generated This field/method will be replaced during code generation * @param value The new value of the EjbClientJar attribute */ void setEjbClientJar(String value); /** * Returns the value of the '<em><b>Version</b></em>' attribute. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Version</em>' attribute isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * <!-- begin-model-doc --> * @version J2EE1.4 * The version specifies the version of the * EJB specification that the instance document must * comply with. This information enables deployment tools * to validate a particular EJB Deployment * Descriptor with respect to a specific version of the EJB * schema. * <!-- end-model-doc --> * @return the value of the '<em>Version</em>' attribute. * @see #setVersion(String) * @see org.eclipse.jst.j2ee.ejb.EjbPackage#getEJBJar_Version() * @model * @generated */ String getVersion(); /** * This returns the module version id. Compare with J2EEVersionConstants to determine module level * @throws IllegalStateException when an error is encountered while getting the spec version of the bean * @return the spec version of the EnterpriseBean, 11, 20, 21 */ public int getVersionID() throws IllegalStateException ; /** * Sets the value of the '{@link org.eclipse.jst.j2ee.ejb.EJBJar#getVersion <em>Version</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Version</em>' attribute. * @see #getVersion() * @generated */ void setVersion(String value); /** * @generated This field/method will be replaced during code generation * @return The AssemblyDescriptor reference */ AssemblyDescriptor getAssemblyDescriptor(); /** * @generated This field/method will be replaced during code generation * @param value The new value of the AssemblyDescriptor reference */ void setAssemblyDescriptor(AssemblyDescriptor value); /** * @generated This field/method will be replaced during code generation * @return The list of EnterpriseBeans references * The enterprise-beans element contains the declarations of one or more * enterprise beans. */ EList getEnterpriseBeans(); /** * @generated This field/method will be replaced during code generation * @return The RelationshipList reference * The relationships collection describes the relationships in which container * managed persistence entity beans and dependent objects participate. The * relationships element contains an optional description; a list of * ejb-entity-ref elements (references to entity beans that participate in * container managed relationships but whose abstract persistence schemas are not * included in the ejb-jar file); * and a list of ejb-relation elements, which specify the container managed * relationships. */ Relationships getRelationshipList(); /** * @generated This field/method will be replaced during code generation * @param value The new value of the RelationshipList reference */ void setRelationshipList(Relationships value); /** * Return the EJBRelationshipRole with the same name as <code>aRoleName</code> * that has <code>sourceCMP</code> as its source bean. * @param aRoleName the role name * @param sourceCMP reference to ContainerManagedEntity * @return a reference to EJBRelationshipRole */ EJBRelationshipRole getRelationshipRole(String aRoleName, ContainerManagedEntity sourceCMP) ; /** * Return the first EJBRelation with the same name as <code>aRelationName</code>. * @param aRelationName the name of the relation * @return a reference to EJBRelation */ EJBRelation getEJBRelation(String aRelationName) ; /** * Return all EJBRelation objects that have an EJBRelationshipRole with a * source EJB of <code>cmp</code>. * @param cmp reference to ContainerManagedEntity * @return List of EJBRelation */ List getEJBRelationsForSource(ContainerManagedEntity cmp); /** * Return all EJBRelationshipRole objects that have an EJBRelationshipRole with a * type EJB of <code>cmp</code>. * @param cmp reference to ContainerManagedEntit * @return List of EJBRelationshipRole */ List getEJBRelationshipRolesForType(ContainerManagedEntity cmp) ; }