blob: 07d8cb152de4ed2e79a1e9a93e2a59c38cebf1f5 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009, 2011 SAP AG 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:
* SAP AG - initial API and implementation
******************************************************************************
* $Id: FormalTypeParameter.java,v 1.2 2011/03/05 21:51:24 auhl Exp $
*/
package data.generics;
import data.classes.SapClass;
import org.eclipse.emf.common.util.EList;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Formal Type Parameter</b></em>'.
* <!-- end-user-doc -->
*
* <!-- begin-model-doc -->
* A formal type argument to the ParameterizedClass owning this parameter object. It is valid only in the scope of the classDefinition owned by the ParameterizedClass that owns this parameter object.
* <!-- end-model-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link data.generics.FormalTypeParameter#getParameterOf <em>Parameter Of</em>}</li>
* <li>{@link data.generics.FormalTypeParameter#getTypeConstraint <em>Type Constraint</em>}</li>
* <li>{@link data.generics.FormalTypeParameter#getActualTypeParameters <em>Actual Type Parameters</em>}</li>
* </ul>
* </p>
*
* @see data.generics.GenericsPackage#getFormalTypeParameter()
* @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL UseInSignaturesOfOwningParamerizedClassOnly='self.elementsOfType.getTypeUsage()->forAll(s | s.oclIsKindOf(data::classes::Parameter) implies \r\n (s.oclAsType(data::classes::Parameter).ownerSignature.oclIsKindOf(data::classes::MethodSignature) and\r\n s.oclAsType(data::classes::Parameter).ownerSignature.oclAsType(data::classes::MethodSignature).owner=self.parameterOf .owningClassDefinition)) and\r\n self.elementsOfType.signaturesWithOutput->forAll(s| s.oclIsKindOf(data::classes::MethodSignature) and \r\n s.oclAsType(data::classes::MethodSignature).owner->notEmpty() and\r\n s.oclAsType(data::classes::MethodSignature).owner=self.parameterOf.owningClassDefinition) and\r\n self.signaturesWithFault->forAll(s| s.oclIsKindOf(data::classes::MethodSignature) and \r\n s.oclAsType(data::classes::MethodSignature).owner->notEmpty() and\r\n s.oclAsType(data::classes::MethodSignature).owner=self.parameterOf.owningClassDefinition)' UseInAssociationsOfOwningParameterizedClassOnly='self.elementsOfType.associationEnd->\r\n forAll(ae | ae.otherEnd().type.clazz = self.parameterOf.owningClassDefinition)'"
* annotation="http://www.eclipse.org/emf/2002/Ecore constraints='UseInSignaturesOfOwningParamerizedClassOnly UseInAssociationsOfOwningParameterizedClassOnly'"
* @generated
*/
public interface FormalTypeParameter extends SapClass {
/**
* Returns the value of the '<em><b>Parameter Of</b></em>' container reference.
* It is bidirectional and its opposite is '{@link data.generics.ClassParameterization#getFormalTypeParameters <em>Formal Type Parameters</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Parameter Of</em>' container reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Parameter Of</em>' container reference.
* @see #setParameterOf(ClassParameterization)
* @see data.generics.GenericsPackage#getFormalTypeParameter_ParameterOf()
* @see data.generics.ClassParameterization#getFormalTypeParameters
* @model opposite="formalTypeParameters" required="true"
* @generated
*/
ClassParameterization getParameterOf();
/**
* Sets the value of the '{@link data.generics.FormalTypeParameter#getParameterOf <em>Parameter Of</em>}' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Parameter Of</em>' container reference.
* @see #getParameterOf()
* @generated
*/
void setParameterOf(ClassParameterization value);
/**
* Returns the value of the '<em><b>Type Constraint</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Type Constraint</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Type Constraint</em>' reference.
* @see #setTypeConstraint(SapClass)
* @see data.generics.GenericsPackage#getFormalTypeParameter_TypeConstraint()
* @model
* @generated
*/
SapClass getTypeConstraint();
/**
* Sets the value of the '{@link data.generics.FormalTypeParameter#getTypeConstraint <em>Type Constraint</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Type Constraint</em>' reference.
* @see #getTypeConstraint()
* @generated
*/
void setTypeConstraint(SapClass value);
/**
* Returns the value of the '<em><b>Actual Type Parameters</b></em>' reference list.
* The list contents are of type {@link data.generics.ActualTypeParameter}.
* It is bidirectional and its opposite is '{@link data.generics.ActualTypeParameter#getFormalTypeParameter <em>Formal Type Parameter</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Actual Type Parameters</em>' reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Actual Type Parameters</em>' reference list.
* @see data.generics.GenericsPackage#getFormalTypeParameter_ActualTypeParameters()
* @see data.generics.ActualTypeParameter#getFormalTypeParameter
* @model opposite="formalTypeParameter"
* @generated
*/
EList<ActualTypeParameter> getActualTypeParameters();
} // FormalTypeParameter