blob: 37e7527d741b261cf2f5e01a51e418e07d906c36 [file] [log] [blame]
/*
* Copyright (c) 2005, 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 - initial API and implementation
*
* $Id: ConnectorEnd.java,v 1.3 2006/12/14 15:49:27 khussey 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.
* It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.ConnectableElement#getEnds <em>End</em>}'.
* <!-- 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()
* @see org.eclipse.uml2.uml.ConnectableElement#getEnds
* @model opposite="end" 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
* <!-- 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
* <!-- 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 both a role and a partWithPort, then the role must be a port that is defined by the type of the partWithPort.
* true
* <!-- 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
* <!-- end-model-doc -->
* @model
* @generated
*/
boolean validateSelfPartWithPort(DiagnosticChain diagnostics,
Map<Object, Object> context);
} // ConnectorEnd