blob: c3c4e890e4e67018d6133b465923e5b895bf5251 [file] [log] [blame]
/*
* Copyright (c) 2003, 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: Substitution.java,v 1.10 2006/05/26 18:16:52 khussey Exp $
*/
package org.eclipse.uml2;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Substitution</b></em>'.
* <!-- end-user-doc -->
*
* <!-- begin-model-doc -->
* A substitution is a relationship between two classifiers signifies that the substitutingClassifier complies with the contract specified by the contract classifier. This implies that instances of the substitutingClassifier are runtime substitutable where instances of the contract classifier are expected.
* <!-- end-model-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link org.eclipse.uml2.Substitution#getContract <em>Contract</em>}</li>
* <li>{@link org.eclipse.uml2.Substitution#getSubstitutingClassifier <em>Substituting Classifier</em>}</li>
* </ul>
* </p>
*
* @see org.eclipse.uml2.UML2Package#getSubstitution()
* @model
* @generated
*/
public interface Substitution extends Realization {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
String copyright = "Copyright (c) IBM Corporation and others."; //$NON-NLS-1$
/**
* Returns the value of the '<em><b>Contract</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Contract</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* (Specializes Dependency.target.)
* <!-- end-model-doc -->
* @return the value of the '<em>Contract</em>' reference.
* @see #setContract(Classifier)
* @see org.eclipse.uml2.UML2Package#getSubstitution_Contract()
* @model required="true"
* @generated
*/
Classifier getContract();
/**
* Sets the value of the '{@link org.eclipse.uml2.Substitution#getContract <em>Contract</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Contract</em>' reference.
* @see #getContract()
* @generated
*/
void setContract(Classifier value);
/**
* Returns the value of the '<em><b>Substituting Classifier</b></em>' container reference.
* It is bidirectional and its opposite is '{@link org.eclipse.uml2.Classifier#getSubstitutions <em>Substitution</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Substituting Classifier</em>' container reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* (Specializes Dependency.client.)
* <!-- end-model-doc -->
* @return the value of the '<em>Substituting Classifier</em>' container reference.
* @see #setSubstitutingClassifier(Classifier)
* @see org.eclipse.uml2.UML2Package#getSubstitution_SubstitutingClassifier()
* @see org.eclipse.uml2.Classifier#getSubstitutions
* @model opposite="substitution" required="true"
* @generated
*/
Classifier getSubstitutingClassifier();
/**
* Sets the value of the '{@link org.eclipse.uml2.Substitution#getSubstitutingClassifier <em>Substituting Classifier</em>}' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Substituting Classifier</em>' container reference.
* @see #getSubstitutingClassifier()
* @generated
*/
void setSubstitutingClassifier(Classifier value);
} // Substitution