blob: 8db86783f140bb8d142bbb91998bb53937d64ccb [file] [log] [blame]
/*
* Copyright (c) 2005, 2011 IBM Corporation, CEA, 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 - initial API and implementation
* Kenn Hussey (CEA) - 327039
*
* $Id: ConnectorEnd.java,v 1.6 2008/10/02 20:56:22 jbruck Exp $
*/
package org.eclipse.uml2.uml;
import java.util.Map;
import org.eclipse.emf.common.util.DiagnosticChain;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Connector End</b></em>'.
* <!-- end-user-doc -->
*
* <!-- begin-model-doc -->
* A connector end is an endpoint of a connector, which attaches the connector to a connectable element. Each connector end is part of one connector.
* <!-- end-model-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link org.eclipse.uml2.uml.ConnectorEnd#getDefiningEnd <em>Defining End</em>}</li>
* <li>{@link org.eclipse.uml2.uml.ConnectorEnd#getPartWithPort <em>Part With Port</em>}</li>
* <li>{@link org.eclipse.uml2.uml.ConnectorEnd#getRole <em>Role</em>}</li>
* </ul>
* </p>
*
* @see org.eclipse.uml2.uml.UMLPackage#getConnectorEnd()
* @model
* @generated
*/
public interface ConnectorEnd
extends MultiplicityElement {
/**
* Returns the value of the '<em><b>Defining End</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* A derived association referencing the corresponding association end on the association which types the connector owing this connector end. This association is derived by selecting the association end at the same place in the ordering of association ends as this connector end.
* <!-- end-model-doc -->
* @return the value of the '<em>Defining End</em>' reference.
* @see org.eclipse.uml2.uml.UMLPackage#getConnectorEnd_DefiningEnd()
* @model transient="true" changeable="false" volatile="true" derived="true" ordered="false"
* @generated
*/
Property getDefiningEnd();
/**
* Returns the value of the '<em><b>Part With Port</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Indicates the role of the internal structure of a classifier with the port to which the connector end is attached.
* <!-- end-model-doc -->
* @return the value of the '<em>Part With Port</em>' reference.
* @see #setPartWithPort(Property)
* @see org.eclipse.uml2.uml.UMLPackage#getConnectorEnd_PartWithPort()
* @model ordered="false"
* @generated
*/
Property getPartWithPort();
/**
* Sets the value of the '{@link org.eclipse.uml2.uml.ConnectorEnd#getPartWithPort <em>Part With Port</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Part With Port</em>' reference.
* @see #getPartWithPort()
* @generated
*/
void setPartWithPort(Property value);
/**
* Returns the value of the '<em><b>Role</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The connectable element attached at this connector end. When an instance of the containing classifier is created, a link may (depending on the multiplicities) be created to an instance of the classifier that types this connectable element.
* <!-- end-model-doc -->
* @return the value of the '<em>Role</em>' reference.
* @see #setRole(ConnectableElement)
* @see org.eclipse.uml2.uml.UMLPackage#getConnectorEnd_Role()
* @model required="true" ordered="false"
* @generated
*/
ConnectableElement getRole();
/**
* Sets the value of the '{@link org.eclipse.uml2.uml.ConnectorEnd#getRole <em>Role</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Role</em>' reference.
* @see #getRole()
* @generated
*/
void setRole(ConnectableElement value);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The multiplicity of the connector end may not be more general than the multiplicity of the association typing the owning connector.
* true
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model
* @generated
*/
boolean validateMultiplicity(DiagnosticChain diagnostics,
Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* If a connector end is attached to a port of the containing classifier, partWithPort will be empty.
* true
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model
* @generated
*/
boolean validatePartWithPortEmpty(DiagnosticChain diagnostics,
Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* If a connector end references a partWithPort, then the role must be a port that is defined by the type of the partWithPort.
* true
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model
* @generated
*/
boolean validateRoleAndPartWithPort(DiagnosticChain diagnostics,
Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The property held in self.partWithPort must not be a Port.
* true
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model
* @generated
*/
boolean validateSelfPartWithPort(DiagnosticChain diagnostics,
Map<Object, Object> context);
} // ConnectorEnd