blob: 8b2f41291db686ab28e2fe62e4650928e409b507 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 2006 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 org.eclipse.emf.common.util.EList;
import org.eclipse.jst.j2ee.common.J2EEEObject;
/**
* The ejb-relation element describes a relationship between two entity beans with container managed persistence. An ejb-relation element contains a description; an optional ejb-relation-name element; and exactly two relationship role declarations, defined by the ejb-relationship-roles. The name of the relationship, if specified, is unique within the ejb-jar file.
*
* @invariant The name of the relationship, if specified, is unique within the ejb-jar file.
* @invariant self.relationshipRoles.size == 2
* @invariant self.relationshipRoles[0].name != self.relationshipRoles[1].name
*
* @migration EJB1.1 Moved from ejbext::EjbRelationshipRole contained under ejbext::EJBJarExtension
* @migration EJB1.1 added optional attribute, description:String
* @migration EJB1.1 added optional attribute, name:String (May have been inherited from EObject previously)
* @since 1.0
* @generated
* @extends CommonRelationship
*/
public interface EJBRelation extends J2EEEObject, CommonRelationship {
boolean containsRelationshipRole(EJBRelationshipRole aRole) ;
EJBRelationshipRole getFirstRole() ;
/**
* Return the other role.
*/
EJBRelationshipRole getOppositeRole(EJBRelationshipRole aRole) ;
EJBRelationshipRole getSecondRole() ;
/**
* Set the forward role.
*/
void setFoward(EJBRelationshipRole aRole) ;
/**
* @generated This field/method will be replaced during code generation
* @return The value of the Description attribute
* The description is used by the ejb-jar file producer to provide text describing
* the ejb relation.
*
* The description should include any information that the ejb-jar file producer
* wants to provide to the consumer of the ejb-jar file (i.e. to the Deployer).
* Typically, the tools used by the ejb-jar file consumer will display the
* description when processing the list of dependents.
*/
String getDescription();
/**
* @generated This field/method will be replaced during code generation
* @param value The new value of the Description attribute
*/
void setDescription(String value);
/**
* @generated This field/method will be replaced during code generation
* @return The value of the Name attribute
* The name of the relationship. If specified, must be unique within the ejb-jar
* file.
* @invariant self.name unique within Set<collect(ejbJar.ejbRelations.name)>
*/
String getName();
/**
* @generated This field/method will be replaced during code generation
* @param value The new value of the Name attribute
*/
void setName(String value);
/**
* @generated This field/method will be replaced during code generation
* @return The RelationshipList reference
*/
Relationships getRelationshipList();
/**
* @generated This field/method will be replaced during code generation
* @param l The new value of the RelationshipList reference
*/
void setRelationshipList(Relationships value);
/**
* @generated This field/method will be replaced during code generation
* @return The list of RelationshipRoles references
* A collection containing exactly two relationship roles.
*
* @migration EJB1.1 Containment used to be by reference on relation--now by value.
*/
EList getRelationshipRoles();
/**
* Returns the value of the '<em><b>Descriptions</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.jst.j2ee.common.Description}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Descriptions</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* @version J2EE1.4
* <!-- end-model-doc -->
* @return the value of the '<em>Descriptions</em>' containment reference list.
* @see org.eclipse.jst.j2ee.ejb.EjbPackage#getEJBRelation_Descriptions()
* @model type="org.eclipse.jst.j2ee.common.Description" containment="true"
* @generated
*/
EList getDescriptions();
/**
* Return the EJBRelationshipRole with the same name as <code>aRoleName</code>.
*/
EJBRelationshipRole getRelationshipRole(String aRoleName) ;
}