blob: ec1daa09e45b893a9d43b05e8db263f7efa7dc1f [file] [log] [blame]
/*
* Copyright (c) 2005, 2015 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, 418466, 451350
* Christian W. Damus (CEA) - 251963
*
*/
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>Link End Creation Data</b></em>'.
* <!-- end-user-doc -->
*
* <!-- begin-model-doc -->
* LinkEndCreationData is LinkEndData used to provide values for one end of a link to be created by a CreateLinkAction.
* <p>From package UML::Actions.</p>
* <!-- end-model-doc -->
*
* <p>
* The following features are supported:
* </p>
* <ul>
* <li>{@link org.eclipse.uml2.uml.LinkEndCreationData#getInsertAt <em>Insert At</em>}</li>
* <li>{@link org.eclipse.uml2.uml.LinkEndCreationData#isReplaceAll <em>Is Replace All</em>}</li>
* </ul>
*
* @see org.eclipse.uml2.uml.UMLPackage#getLinkEndCreationData()
* @model
* @generated
*/
public interface LinkEndCreationData
extends LinkEndData {
/**
* Returns the value of the '<em><b>Is Replace All</b></em>' attribute.
* The default value is <code>"false"</code>.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Specifies whether the existing links emanating from the object on this end should be destroyed before creating a new link.
* <p>From package UML::Actions.</p>
* <!-- end-model-doc -->
* @return the value of the '<em>Is Replace All</em>' attribute.
* @see #setIsReplaceAll(boolean)
* @see org.eclipse.uml2.uml.UMLPackage#getLinkEndCreationData_IsReplaceAll()
* @model default="false" dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false"
* @generated
*/
boolean isReplaceAll();
/**
* Sets the value of the '{@link org.eclipse.uml2.uml.LinkEndCreationData#isReplaceAll <em>Is Replace All</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Is Replace All</em>' attribute.
* @see #isReplaceAll()
* @generated
*/
void setIsReplaceAll(boolean value);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* LinkEndCreationData for ordered Association ends must have a single insertAt InputPin for the insertion point with type UnlimitedNatural and multiplicity of 1..1, if isReplaceAll=false, and must have no InputPin for the insertion point when the association ends are unordered.
* if not end.isOrdered
* then insertAt = null
* else
* not isReplaceAll=false implies
* insertAt <> null and insertAt->forAll(type=UnlimitedNatural and is(1,1))
* endif
* @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 validateInsertAtPin(DiagnosticChain diagnostics,
Map<Object, Object> context);
/**
* Returns the value of the '<em><b>Insert At</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* For ordered Association ends, the InputPin that provides the position where the new link should be inserted or where an existing link should be moved to. The type of the insertAt InputPin is UnlimitedNatural, but the input cannot be zero. It is omitted for Association ends that are not ordered.
* <p>From package UML::Actions.</p>
* <!-- end-model-doc -->
* @return the value of the '<em>Insert At</em>' reference.
* @see #setInsertAt(InputPin)
* @see org.eclipse.uml2.uml.UMLPackage#getLinkEndCreationData_InsertAt()
* @model ordered="false"
* @generated
*/
InputPin getInsertAt();
/**
* Sets the value of the '{@link org.eclipse.uml2.uml.LinkEndCreationData#getInsertAt <em>Insert At</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Insert At</em>' reference.
* @see #getInsertAt()
* @generated
*/
void setInsertAt(InputPin value);
} // LinkEndCreationData