| /******************************************************************************* |
| * Copyright (c) 2009, 2018 SAP AG and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v2.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v20.html |
| * |
| * Contributors: |
| * SAP AG - initial API and implementation |
| ****************************************************************************** |
| */ |
| package data.classes; |
| |
| import abapmapping.AbapAssociationImplementationAnnotation; |
| |
| import data.timedependency.TimeDependency; |
| |
| import modelmanagement.NamedElement; |
| |
| import org.eclipse.emf.common.util.EList; |
| |
| /** |
| * <!-- begin-user-doc --> |
| * A representation of the model object '<em><b>Association</b></em>'. |
| * <!-- end-user-doc --> |
| * |
| * <p> |
| * The following features are supported: |
| * <ul> |
| * <li>{@link data.classes.Association#getEnds <em>Ends</em>}</li> |
| * <li>{@link data.classes.Association#getPackage_ <em>Package </em>}</li> |
| * <li>{@link data.classes.Association#getTimeDependency <em>Time Dependency</em>}</li> |
| * <li>{@link data.classes.Association#getAbapAnnotation <em>Abap Annotation</em>}</li> |
| * </ul> |
| * </p> |
| * |
| * @see data.classes.ClassesPackage#getAssociation() |
| * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL UniquenessOnBothEndsMustBeTheSame='self.ends->forAll( e1, e2 : AssociationEnd |\r\n e1 <> e2 implies e1.type.unique = e2.type.unique)' AtMostOneCompositeEnd='self.ends->select(composite)->size() < 2' AtLeastOneNavigableEnd='self.ends->select(ae:AssociationEnd | ae.navigable)->notEmpty()' AtMostOneEqualityContributionForTwoValueClasses='self.ends->select(contributesToEquality and type.clazz.valueType)->size() < 2' AtMostOneOrderedEnd='self.ends->select(ae|ae.type.ordered)->size() < 2'" |
| * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='UniquenessOnBothEndsMustBeTheSame AtMostOneCompositeEnd AtLeastOneNavigableEnd AtMostOneEqualityContributionForTwoValueClasses AtMostOneOrderedEnd'" |
| * @generated |
| */ |
| public interface Association extends NamedElement { |
| /** |
| * Returns the value of the '<em><b>Ends</b></em>' containment reference list. |
| * The list contents are of type {@link data.classes.AssociationEnd}. |
| * It is bidirectional and its opposite is '{@link data.classes.AssociationEnd#getAssociation <em>Association</em>}'. |
| * <!-- begin-user-doc --> |
| * <p> |
| * If the meaning of the '<em>Ends</em>' containment reference list isn't clear, |
| * there really should be more of a description here... |
| * </p> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Ends</em>' containment reference list. |
| * @see data.classes.ClassesPackage#getAssociation_Ends() |
| * @see data.classes.AssociationEnd#getAssociation |
| * @model opposite="association" containment="true" resolveProxies="true" lower="2" upper="2" |
| * @generated |
| */ |
| EList<AssociationEnd> getEnds(); |
| |
| /** |
| * Returns the value of the '<em><b>Package </b></em>' container reference. |
| * It is bidirectional and its opposite is '{@link modelmanagement.Package#getAssociations <em>Associations</em>}'. |
| * <!-- begin-user-doc --> |
| * <p> |
| * If the meaning of the '<em>Package </em>' container reference isn't clear, |
| * there really should be more of a description here... |
| * </p> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Package </em>' container reference. |
| * @see #setPackage_(modelmanagement.Package) |
| * @see data.classes.ClassesPackage#getAssociation_Package_() |
| * @see modelmanagement.Package#getAssociations |
| * @model opposite="associations" required="true" |
| * @generated |
| */ |
| modelmanagement.Package getPackage_(); |
| |
| /** |
| * Sets the value of the '{@link data.classes.Association#getPackage_ <em>Package </em>}' container reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Package </em>' container reference. |
| * @see #getPackage_() |
| * @generated |
| */ |
| void setPackage_(modelmanagement.Package value); |
| |
| /** |
| * Returns the value of the '<em><b>Time Dependency</b></em>' containment reference. |
| * It is bidirectional and its opposite is '{@link data.timedependency.TimeDependency#getAssociation <em>Association</em>}'. |
| * <!-- begin-user-doc --> |
| * <p> |
| * If the meaning of the '<em>Time Dependency</em>' containment reference isn't clear, |
| * there really should be more of a description here... |
| * </p> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Time Dependency</em>' containment reference. |
| * @see #setTimeDependency(TimeDependency) |
| * @see data.classes.ClassesPackage#getAssociation_TimeDependency() |
| * @see data.timedependency.TimeDependency#getAssociation |
| * @model opposite="association" containment="true" resolveProxies="true" |
| * @generated |
| */ |
| TimeDependency getTimeDependency(); |
| |
| /** |
| * Sets the value of the '{@link data.classes.Association#getTimeDependency <em>Time Dependency</em>}' containment reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Time Dependency</em>' containment reference. |
| * @see #getTimeDependency() |
| * @generated |
| */ |
| void setTimeDependency(TimeDependency value); |
| |
| /** |
| * Returns the value of the '<em><b>Abap Annotation</b></em>' reference. |
| * <!-- begin-user-doc --> |
| * <p> |
| * If the meaning of the '<em>Abap Annotation</em>' reference isn't clear, |
| * there really should be more of a description here... |
| * </p> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Abap Annotation</em>' reference. |
| * @see #setAbapAnnotation(AbapAssociationImplementationAnnotation) |
| * @see data.classes.ClassesPackage#getAssociation_AbapAnnotation() |
| * @model |
| * @generated |
| */ |
| AbapAssociationImplementationAnnotation getAbapAnnotation(); |
| |
| /** |
| * Sets the value of the '{@link data.classes.Association#getAbapAnnotation <em>Abap Annotation</em>}' reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Abap Annotation</em>' reference. |
| * @see #getAbapAnnotation() |
| * @generated |
| */ |
| void setAbapAnnotation(AbapAssociationImplementationAnnotation value); |
| |
| } // Association |