/******************************************************************************* * 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 org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; /** * Insert the type's description here. * Creation date: (10/26/2001 9:24:27 AM) * @author: Administrator * @since 1.0 */ public interface CommonRelationshipRole extends EObject { /** * Return the persistentAttributes from my Entity that are used * by this role. * @return the attributes of the CommonRelationshipRole */ public EList getAttributes(); /** * Return our parent relationship as a CommonRelationship * @return the CommonRelationship reference */ public CommonRelationship getCommonRelationship(); /** * Defines a name for a role that is unique within an ejb-relation. Different relationships can use the same name for a role. * @return The value of the Name attribute */ public String getName(); /** * Return the actual name of this role. This is the name defined in the Deployment * Descriptor. You should use <code>getName()</code> for the name to use in code * generation. * @return the name of the CommonRelationshipRole */ String getRoleName(); /** * Return the other role. * @return CommonRelationshipRole reference */ CommonRelationshipRole getOppositeAsCommonRole() ; /** * @return The Source ejb * Compute the ContainerManagedEntity which is the source of a role that participates in a relationship. * @return ContainerManagedEntity reference */ public ContainerManagedEntity getSourceEntity(); /** * Compute the ContainerManagedEntity which is the type of a role that participates in a relationship. * @return The type ejb */ public ContainerManagedEntity getTypeEntity(); /** * @return The computed value of the isForward attribute * Specifies whether this role should be mapped to a persistent reference, such as a foreign key. */ public boolean isForward(); /** * Returns true if this is a key * @return The computed value isKey */ public boolean isKey(); /** * This method should be used as a hint about the key status of the role. * @param aBoolean the boolean value */ public void setKey(boolean aBoolean) ; /** * @return The computed value isMany * Returns whether the upper limit of our multiplicity is > 1 */ public boolean isMany(); /** * * sets the upper limit of our multiplicity * @param upperBound the int value of the multiplicity */ public void setUpper(int upperBound); /** * * sets the lower limit of our multiplicity * @param lowerBound the int value if the multiplicity */ public void setLower(int lowerBound); /** * @return The computed value of the isNavigable attribute * Specifies that accessors should be generated for this relationship role. */ public boolean isNavigable(); /** * Gets the attribute name of a given CMPAttribute * @param roleAttribute the CMPAttribute * @return the name of the targetAttribute */ public String getTargetAttributeName(CMPAttribute roleAttribute); /** * Collects the attributes * */ void reconcileAttributes(); /** * Method isRequired. * @return boolean value */ boolean isRequired(); }