/**
* <copyright>
* </copyright>
*
* $Id$
*/
package org.obeonetwork.dsl.entityrelation;
import org.eclipse.emf.common.util.EList;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Relation</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link org.obeonetwork.dsl.entityrelation.Relation#getSource <em>Source</em>}</li>
* <li>{@link org.obeonetwork.dsl.entityrelation.Relation#getSourceRole <em>Source Role</em>}</li>
* <li>{@link org.obeonetwork.dsl.entityrelation.Relation#getSourceCardinality <em>Source Cardinality</em>}</li>
* <li>{@link org.obeonetwork.dsl.entityrelation.Relation#isSourceIsComposite <em>Source Is Composite</em>}</li>
* <li>{@link org.obeonetwork.dsl.entityrelation.Relation#getTarget <em>Target</em>}</li>
* <li>{@link org.obeonetwork.dsl.entityrelation.Relation#getTargetRole <em>Target Role</em>}</li>
* <li>{@link org.obeonetwork.dsl.entityrelation.Relation#getTargetCardinality <em>Target Cardinality</em>}</li>
* <li>{@link org.obeonetwork.dsl.entityrelation.Relation#isTargetIsComposite <em>Target Is Composite</em>}</li>
* <li>{@link org.obeonetwork.dsl.entityrelation.Relation#getElements <em>Elements</em>}</li>
* <li>{@link org.obeonetwork.dsl.entityrelation.Relation#getIdentifier <em>Identifier</em>}</li>
* </ul>
* </p>
*
* @see org.obeonetwork.dsl.entityrelation.EntityRelationPackage#getRelation()
* @model
* @generated
*/
public interface Relation extends NamedElement {
/**
* Returns the value of the '<em><b>Source</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Source</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Source</em>' reference.
* @see #setSource(Entity)
* @see org.obeonetwork.dsl.entityrelation.EntityRelationPackage#getRelation_Source()
* @model required="true"
* @generated
*/
Entity getSource();
/**
* Sets the value of the '{@link org.obeonetwork.dsl.entityrelation.Relation#getSource <em>Source</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Source</em>' reference.
* @see #getSource()
* @generated
*/
void setSource(Entity value);
/**
* Returns the value of the '<em><b>Source Role</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Source Role</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Source Role</em>' attribute.
* @see #setSourceRole(String)
* @see org.obeonetwork.dsl.entityrelation.EntityRelationPackage#getRelation_SourceRole()
* @model
* @generated
*/
String getSourceRole();
/**
* Sets the value of the '{@link org.obeonetwork.dsl.entityrelation.Relation#getSourceRole <em>Source Role</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Source Role</em>' attribute.
* @see #getSourceRole()
* @generated
*/
void setSourceRole(String value);
/**
* Returns the value of the '<em><b>Source Cardinality</b></em>' attribute.
* The default value is <code>"0..*"</code>.
* The literals are from the enumeration {@link org.obeonetwork.dsl.entityrelation.Cardinality}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Source Cardinality</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Source Cardinality</em>' attribute.
* @see org.obeonetwork.dsl.entityrelation.Cardinality
* @see #setSourceCardinality(Cardinality)
* @see org.obeonetwork.dsl.entityrelation.EntityRelationPackage#getRelation_SourceCardinality()
* @model default="0..*"
* @generated
*/
Cardinality getSourceCardinality();
/**
* Sets the value of the '{@link org.obeonetwork.dsl.entityrelation.Relation#getSourceCardinality <em>Source Cardinality</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Source Cardinality</em>' attribute.
* @see org.obeonetwork.dsl.entityrelation.Cardinality
* @see #getSourceCardinality()
* @generated
*/
void setSourceCardinality(Cardinality value);
/**
* Returns the value of the '<em><b>Source Is Composite</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Source Is Composite</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Source Is Composite</em>' attribute.
* @see #setSourceIsComposite(boolean)
* @see org.obeonetwork.dsl.entityrelation.EntityRelationPackage#getRelation_SourceIsComposite()
* @model
* @generated
*/
boolean isSourceIsComposite();
/**
* Sets the value of the '{@link org.obeonetwork.dsl.entityrelation.Relation#isSourceIsComposite <em>Source Is Composite</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Source Is Composite</em>' attribute.
* @see #isSourceIsComposite()
* @generated
*/
void setSourceIsComposite(boolean value);
/**
* Returns the value of the '<em><b>Target</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Target</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Target</em>' reference.
* @see #setTarget(Entity)
* @see org.obeonetwork.dsl.entityrelation.EntityRelationPackage#getRelation_Target()
* @model required="true"
* @generated
*/
Entity getTarget();
/**
* Sets the value of the '{@link org.obeonetwork.dsl.entityrelation.Relation#getTarget <em>Target</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Target</em>' reference.
* @see #getTarget()
* @generated
*/
void setTarget(Entity value);
/**
* Returns the value of the '<em><b>Target Role</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Target Role</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Target Role</em>' attribute.
* @see #setTargetRole(String)
* @see org.obeonetwork.dsl.entityrelation.EntityRelationPackage#getRelation_TargetRole()
* @model
* @generated
*/
String getTargetRole();
/**
* Sets the value of the '{@link org.obeonetwork.dsl.entityrelation.Relation#getTargetRole <em>Target Role</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Target Role</em>' attribute.
* @see #getTargetRole()
* @generated
*/
void setTargetRole(String value);
/**
* Returns the value of the '<em><b>Target Cardinality</b></em>' attribute.
* The default value is <code>"0..1"</code>.
* The literals are from the enumeration {@link org.obeonetwork.dsl.entityrelation.Cardinality}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Target Cardinality</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Target Cardinality</em>' attribute.
* @see org.obeonetwork.dsl.entityrelation.Cardinality
* @see #setTargetCardinality(Cardinality)
* @see org.obeonetwork.dsl.entityrelation.EntityRelationPackage#getRelation_TargetCardinality()
* @model default="0..1"
* @generated
*/
Cardinality getTargetCardinality();
/**
* Sets the value of the '{@link org.obeonetwork.dsl.entityrelation.Relation#getTargetCardinality <em>Target Cardinality</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Target Cardinality</em>' attribute.
* @see org.obeonetwork.dsl.entityrelation.Cardinality
* @see #getTargetCardinality()
* @generated
*/
void setTargetCardinality(Cardinality value);
/**
* Returns the value of the '<em><b>Target Is Composite</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Target Is Composite</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Target Is Composite</em>' attribute.
* @see #setTargetIsComposite(boolean)
* @see org.obeonetwork.dsl.entityrelation.EntityRelationPackage#getRelation_TargetIsComposite()
* @model
* @generated
*/
boolean isTargetIsComposite();
/**
* Sets the value of the '{@link org.obeonetwork.dsl.entityrelation.Relation#isTargetIsComposite <em>Target Is Composite</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Target Is Composite</em>' attribute.
* @see #isTargetIsComposite()
* @generated
*/
void setTargetIsComposite(boolean value);
/**
* Returns the value of the '<em><b>Elements</b></em>' containment reference list.
* The list contents are of type {@link org.obeonetwork.dsl.entityrelation.RelationElement}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Elements</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>Elements</em>' containment reference list.
* @see org.obeonetwork.dsl.entityrelation.EntityRelationPackage#getRelation_Elements()
* @model containment="true"
* @generated
*/
EList<RelationElement> getElements();
/**
* Returns the value of the '<em><b>Identifier</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Identifier</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Identifier</em>' reference.
* @see #setIdentifier(Identifier)
* @see org.obeonetwork.dsl.entityrelation.EntityRelationPackage#getRelation_Identifier()
* @model
* @generated
*/
Identifier getIdentifier();
/**
* Sets the value of the '{@link org.obeonetwork.dsl.entityrelation.Relation#getIdentifier <em>Identifier</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Identifier</em>' reference.
* @see #getIdentifier()
* @generated
*/
void setIdentifier(Identifier value);
} // Relation