blob: 9bd67cd8f8220ac7dac0e33d48177dfcc7591941 [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: Dependency.java,v 1.3 2006/02/22 20:48:15 khussey Exp $
*/
package org.eclipse.uml2.uml;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Dependency</b></em>'.
* <!-- end-user-doc -->
*
* <!-- begin-model-doc -->
* A dependency is a relationship that signifies that a single or a set of model elements requires other model elements for their specification or implementation. This means that the complete semantics of the depending elements is either semantically or structurally dependent on the definition of the supplier element(s).
* <!-- end-model-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link org.eclipse.uml2.uml.Dependency#getSuppliers <em>Supplier</em>}</li>
* <li>{@link org.eclipse.uml2.uml.Dependency#getClients <em>Client</em>}</li>
* </ul>
* </p>
*
* @see org.eclipse.uml2.uml.UMLPackage#getDependency()
* @model
* @generated
*/
public interface Dependency
extends PackageableElement, DirectedRelationship {
/**
* Returns the value of the '<em><b>Supplier</b></em>' reference list.
* The list contents are of type {@link org.eclipse.uml2.uml.NamedElement}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The element(s) independent of the client element(s), in the same respect and the same dependency relationship. In some directed dependency relationships (such as Refinement Abstractions), a common convention in the domain of class-based OO software is to put the more abstract element in this role. Despite this convention, users of UML may stipulate a sense of dependency suitable for their domain, which makes a more abstract element dependent on that which is more specific.
* <!-- end-model-doc -->
* @return the value of the '<em>Supplier</em>' reference list.
* @see org.eclipse.uml2.uml.UMLPackage#getDependency_Supplier()
* @model type="org.eclipse.uml2.uml.NamedElement" required="true" ordered="false"
* @generated
*/
EList getSuppliers();
/**
* Retrieves the first {@link org.eclipse.uml2.uml.NamedElement} with the specified '<em><b>Name</b></em>' from the '<em><b>Supplier</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve, or <code>null</code>.
* @return The first {@link org.eclipse.uml2.uml.NamedElement} with the specified '<em><b>Name</b></em>', or <code>null</code>.
* @see #getSuppliers()
* @generated
*/
NamedElement getSupplier(String name);
/**
* Retrieves the first {@link org.eclipse.uml2.uml.NamedElement} with the specified '<em><b>Name</b></em>' from the '<em><b>Supplier</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve, or <code>null</code>.
* @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.
* @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve, or <code>null</code>.
* @return The first {@link org.eclipse.uml2.uml.NamedElement} with the specified '<em><b>Name</b></em>', or <code>null</code>.
* @see #getSuppliers()
* @generated
*/
NamedElement getSupplier(String name, boolean ignoreCase, EClass eClass);
/**
* Returns the value of the '<em><b>Client</b></em>' reference list.
* The list contents are of type {@link org.eclipse.uml2.uml.NamedElement}.
* It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.NamedElement#getClientDependencies <em>Client Dependency</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation.
* <!-- end-model-doc -->
* @return the value of the '<em>Client</em>' reference list.
* @see org.eclipse.uml2.uml.UMLPackage#getDependency_Client()
* @see org.eclipse.uml2.uml.NamedElement#getClientDependencies
* @model type="org.eclipse.uml2.uml.NamedElement" opposite="clientDependency" required="true" ordered="false"
* @generated
*/
EList getClients();
/**
* Retrieves the first {@link org.eclipse.uml2.uml.NamedElement} with the specified '<em><b>Name</b></em>' from the '<em><b>Client</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve, or <code>null</code>.
* @return The first {@link org.eclipse.uml2.uml.NamedElement} with the specified '<em><b>Name</b></em>', or <code>null</code>.
* @see #getClients()
* @generated
*/
NamedElement getClient(String name);
/**
* Retrieves the first {@link org.eclipse.uml2.uml.NamedElement} with the specified '<em><b>Name</b></em>' from the '<em><b>Client</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve, or <code>null</code>.
* @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.
* @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.NamedElement} to retrieve, or <code>null</code>.
* @return The first {@link org.eclipse.uml2.uml.NamedElement} with the specified '<em><b>Name</b></em>', or <code>null</code>.
* @see #getClients()
* @generated
*/
NamedElement getClient(String name, boolean ignoreCase, EClass eClass);
} // Dependency