blob: 1d73d191e2078cb727f482e484e27b84651048af [file] [log] [blame]
/*
* Copyright (c) 2011, 2012 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:
* CEA - initial API and implementation
* Kenn Hussey (CEA) - 351777, 382718
*
*/
package org.eclipse.uml2.uml.profile.l2;
import java.util.Map;
import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.ecore.EObject;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Implementation Class</b></em>'.
* <!-- end-user-doc -->
*
* <!-- begin-model-doc -->
* The implementation of a class in some programming language (e.g., C++, Smalltalk, Java) in which an instance may not have more than one class. This is in contrast to Class, for which an instance may have multiple classes at one time and may gain or lose classes over time, and an object (a child of instance) may dynamically have multiple classes. An Implementation class is said to realize a Classifier if it provides all of the operations defined for the Classifier with the same behavior as specified for the Classifier's operations. An Implementation Class may realize a number of different Types. Note that the physical attributes and associations of the Implementation class do not have to be the same as those of any Classifier it realizes and that the Implementation Class may provide methods for its operations in terms of its physical attributes and associations. See also: «Type».
* <!-- end-model-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link org.eclipse.uml2.uml.profile.l2.ImplementationClass#getBase_Class <em>Base Class</em>}</li>
* </ul>
* </p>
*
* @see org.eclipse.uml2.uml.profile.l2.L2Package#getImplementationClass()
* @model
* @generated
*/
public interface ImplementationClass
extends EObject {
/**
* Returns the value of the '<em><b>Base Class</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Base Class</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Base Class</em>' reference.
* @see #setBase_Class(org.eclipse.uml2.uml.Class)
* @see org.eclipse.uml2.uml.profile.l2.L2Package#getImplementationClass_Base_Class()
* @model required="true" ordered="false"
* @generated
*/
org.eclipse.uml2.uml.Class getBase_Class();
/**
* Sets the value of the '{@link org.eclipse.uml2.uml.profile.l2.ImplementationClass#getBase_Class <em>Base Class</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Base Class</em>' reference.
* @see #getBase_Class()
* @generated
*/
void setBase_Class(org.eclipse.uml2.uml.Class value);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self.base_Class.extension_Realization->isEmpty()
* @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 validateCannotBeRealization(DiagnosticChain diagnostics,
Map<Object, Object> context);
} // ImplementationClass