blob: 641d59f4957e8fbeca291b46cde9a71218e3aef8 [file] [log] [blame]
/*******************************************************************************
* 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.Comparator;
import java.util.List;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.ENamedElement;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jem.java.JavaClass;
import org.eclipse.jem.java.Method;
import org.eclipse.jst.j2ee.common.EJBLocalRef;
import org.eclipse.jst.j2ee.common.EjbRef;
import org.eclipse.jst.j2ee.common.JNDIEnvRefsGroup;
import org.eclipse.jst.j2ee.common.SecurityIdentity;
/**
* @generated
* EnterpriseJavaBean is a class. It can have instances, someone could write an instance document containing Departments and Employees. It also has attributes, operations, and associations. These are actually derived//filtered from its implementation classes and interfaces. For mapping and browsing purposes, though, you would like the EJB to appear as a class.
*
* In this light, even Session Beans can have associations and properties implemented by their bean. For example, it would be meaningful to describe associations from a Session to the Entities which it uses to perform its work.
* @extends ENamedElement
*
** @since 1.0 */
public interface EnterpriseBean extends JNDIEnvRefsGroup, ENamedElement{
/**
* Creates a List of MethodElements that represent the
* Methods from @someMethods pointing to this EJB. It is
* assumed that all of the methods belong to @anInterface.
*/
List createMethodElements(List someMethods, JavaClass anInterface) ;
/**
* This method will return a List of newly created MethodElements
* that represent all the possible MethodElements that can be created
* and are common to both the Home and Remote interfaces. These MethodElements are not contained and will
* not be serialized and should not be added to the model. Their intention is
* solely for comparing with actual MethodElements contained in the model.
* @deprecated used getAvailableUnspecifiedMethodElements
*/
List getAvailableCommonMethodElements() ;
/**
* This method will return a List of newly created MethodElements
* that represent all the possible MethodElements that can be created
* and are common to both the Home and Remote interfaces. These MethodElements are not contained and will
* not be serialized and should not be added to the model. Their intention is
* solely for comparing with actual MethodElements contained in the model.
*/
List getAvailableUnspecifiedMethodElements() ;
/**
* This method will return a List of MethodElements signatures
* that represent all the possible MethodElements that can be created
* and are common to both the Home and Remote interfaces.
* @deprecated used getAvailableUnspecifiedMethodElementSignatures
*/
List getAvailableCommonMethodElementSignatures() ;
/**
* This method will return a List of MethodElements signatures
* that represent all the possible MethodElements that can be created
* and are common to both the Home and Remote interfaces.
*/
List getAvailableUnspecifiedMethodElementSignatures() ;
/**
* This method will return a List of newly created MethodElements
* that represent all the possible MethodElements that can be created
* for the Home interface. These MethodElements are not contained and will
* not be serialized and should not be added to the model. Their intention is
* solely for comparing with actual MethodElements contained in the model.
*/
List getAvailableHomeMethodElements() ;
/**
* This method will return a List of newly created MethodElements
* that represent all the possible MethodElements that can be created
* for the Local Home interface. These MethodElements are not contained and will
* not be serialized and should not be added to the model. Their intention is
* solely for comparing with actual MethodElements contained in the model.
*/
List getAvailableLocalHomeMethodElements() ;
/**
* This method will return a List of newly created MethodElements
* that represent all the possible MethodElements that can be created
* for the Local interface. These MethodElements are not contained and will
* not be serialized and should not be added to the model. Their intention is
* solely for comparing with actual MethodElements contained in the model.
*/
List getAvailableLocalMethodElements() ;
/**
* This method will return a List of newly created MethodElements
* that represent all the possible MethodElements that can be created
* for the Remote interface. These MethodElements are not contained and will
* not be serialized and should not be added to the model. Their intention is
* solely for comparing with actual MethodElements contained in the model.
*/
List getAvailableRemoteMethodElements() ;
/**
* Return a List of all available MethodElements for all types as well as the
* existing MethodElements from the <code>refObject</code>. The parameter
* will be either a MethodTransaction or a MethodPermission. The List will be
* sorted based on the passed EjbMethodElementComparator
*/
public List getExistingOrAvailableMethodElements(EObject refObject, Comparator comparator) ;
/**
* Return a List of all available MethodElements for all types as well as the
* existing MethodElements from the <code>refObject</code>. The parameter
* will be either a MethodTransaction or a MethodPermission. The List will be
* sorted based on the EjbMethodElementComparator
*/
public List getExistingOrAvailableMethodElements(EObject refObject) ;
public String getEjbClassName();
/**
* Return an EjbRef contained by this bean which is
* equivalent to @anEjbRef.
*/
EjbRef getEquivalentEjbRef(EjbRef anEjbRef) ;
/**
* Method getEquivalentEJBLocalRef.
* @param anEjbLocalRef
* @return EJBLocalRef
*/
EJBLocalRef getEquivalentEJBLocalRef(EJBLocalRef anEjbLocalRef);
public String getHomeInterfaceName();
public Method[] getHomeMethodsForDeployment();
/**
* Return an EjbRef that is physically linked to @anEJB.
*/
EjbRef getLinkedEJBReference(EnterpriseBean anEJB) ;
/**
* Return an EJBLocalRef that is physically linked to @anEJB.
*/
EJBLocalRef getLinkedEJBLocalReference(EnterpriseBean anEJB) ;
public String getLocalHomeInterfaceName();
public Method[] getLocalHomeMethodsForDeployment();
public String getLocalInterfaceName();
public String getRemoteInterfaceName();
public Method[] getRemoteMethodsForDeployment();
/**
* Return true if @aJavaClass as equal to the
* home, remote, bean class, or key class.
*/
boolean hasJavaReference(JavaClass aJavaClass) ;
/**
* Return true if this ejb has BeanManagedPersistance.
*/
boolean isBeanManagedEntity() ;
public boolean isContainerManagedEntity();
public boolean isEntity();
public boolean isMessageDriven();
public boolean isSession();
/**
* returns an integer representing the version of the bean in the EJBJar
* @see org.eclipse.jst.j2ee.internal.J2EEVersionConstants
*/
public int getVersionID();
/**
* @deprecated - Use {@link #getVersionID()}
* @see org.eclipse.jst.j2ee.internal.J2EEVersionConstants
*/
public boolean isVersion1_X() ;
/**
* @deprecated - Use {@link #getVersionID()}
* @see org.eclipse.jst.j2ee.internal.J2EEVersionConstants
*/
public boolean isVersion2_X() ;
/**
* Return true if this EJB has a local interface and a local home
* interface.
*/
public boolean hasLocalClient();
/**
* Return true if this EJB has a remote interface and a home
* interface.
*/
public boolean hasRemoteClient();
/**
* Fix the role-link on any contained role refs
*/
public void reSyncSecurityRoleRef(String existingRoleName, String newRoleName);
public void setEjbClassName(String ejbClassName);
public void setHomeInterfaceName(String homeInterfaceName);
public void setLocalHomeInterfaceName(String localHomeInterfaceName);
public void setLocalInterfaceName(String localInterfaceName);
public void setRemoteInterfaceName(String remoteInterfaceName);
/**
* Returns the value of the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Name</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Name</em>' attribute.
* @see #setName(String)
* @see org.eclipse.jst.j2ee.ejb.EjbPackage#getEnterpriseBean_Name()
* @model
* @generated
*/
String getName();
/**
* Sets the value of the '{@link org.eclipse.jst.j2ee.ejb.EnterpriseBean#getName <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Name</em>' attribute.
* @see #getName()
* @generated
*/
void setName(String value);
/**
* @generated This field/method will be replaced during code generation
* @return The list of SecurityRoleRefs references
*/
EList getSecurityRoleRefs();
/**
* @generated This field/method will be replaced during code generation
* @return The EjbClass reference
*/
JavaClass getEjbClass();
/**
* @generated This field/method will be replaced during code generation
* @param l The new value of the EjbClass reference
*/
void setEjbClass(JavaClass value);
/**
* @generated This field/method will be replaced during code generation
* @return The HomeInterface reference
*/
JavaClass getHomeInterface();
/**
* @generated This field/method will be replaced during code generation
* @param l The new value of the HomeInterface reference
*/
void setHomeInterface(JavaClass value);
/**
* @generated This field/method will be replaced during code generation
* @return The RemoteInterface reference
*/
JavaClass getRemoteInterface();
/**
* @generated This field/method will be replaced during code generation
* @param l The new value of the RemoteInterface reference
*/
void setRemoteInterface(JavaClass value);
/**
* @generated This field/method will be replaced during code generation
* @return The EjbJar reference
*/
EJBJar getEjbJar();
/**
* @generated This field/method will be replaced during code generation
* @param l The new value of the EjbJar reference
*/
void setEjbJar(EJBJar value);
/**
* @generated This field/method will be replaced during code generation
* @return The SecurityIdentity reference
* The security-identity element specifies whether the caller's security identity
* is to be used for the execution of the methods of the enterprise bean or
* whether a specific run-as identity is to be used. It
* contains an optional description and a specification of the security identity
* to be used.
*/
SecurityIdentity getSecurityIdentity();
/**
* @generated This field/method will be replaced during code generation
* @param l The new value of the SecurityIdentity reference
*/
void setSecurityIdentity(SecurityIdentity value);
/**
* @generated This field/method will be replaced during code generation
* @return The LocalHomeInterface reference
*/
JavaClass getLocalHomeInterface();
/**
* @generated This field/method will be replaced during code generation
* @param l The new value of the LocalHomeInterface reference
*/
void setLocalHomeInterface(JavaClass value);
/**
* @generated This field/method will be replaced during code generation
* @return The LocalInterface reference
*/
JavaClass getLocalInterface();
/**
* @generated This field/method will be replaced during code generation
* @param l The new value of the LocalInterface reference
*/
void setLocalInterface(JavaClass value);
}