/**
*/
package org.eclipse.papyrus.uml.alf;
import java.math.BigInteger;
import java.util.Map;
import org.eclipse.emf.common.util.DiagnosticChain;
/**
*
* A representation of the model object 'Class Extent Expression'.
*
*
*
* An expression used to obtain the objects in the extent of a class.
*
*
*
* The following features are supported:
*
*
*
{@link org.eclipse.papyrus.uml.alf.ClassExtentExpression#getClassName Class Name}
*
*
* @see org.eclipse.papyrus.uml.alf.AlfPackage#getClassExtentExpression()
* @model
* @generated
*/
public interface ClassExtentExpression extends Expression {
/**
* Returns the value of the 'Class Name' containment reference.
*
*
*
* The name of the class whose extent is to be obtained.
*
* @return the value of the 'Class Name' containment reference.
* @see #setClassName(QualifiedName)
* @see org.eclipse.papyrus.uml.alf.AlfPackage#getClassExtentExpression_ClassName()
* @model containment="true" required="true"
* @generated
*/
QualifiedName getClassName();
/**
* Sets the value of the '{@link org.eclipse.papyrus.uml.alf.ClassExtentExpression#getClassName Class Name}' containment reference.
*
*
* @param value the new value of the 'Class Name' containment reference.
* @see #getClassName()
* @generated
*/
void setClassName(QualifiedName value);
/**
*
*
* @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n let referents = self.className.referent->select(isClass()) in\n if referents->size() <> 1 then null\n else referents->any(true)\n endif'"
* @generated
*/
ElementReference type();
/**
*
*
* @model required="true"
* annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='-1'"
* @generated
*/
BigInteger upper();
/**
*
*
* @model required="true"
* annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='0'"
* @generated
*/
BigInteger lower();
/**
*
*
*
* The type of a class extent expression is the given class.
* (See the type() operation.)
*
* @model
* @generated
*/
boolean classExtentExpressionTypeDerivation(DiagnosticChain diagnostics, Map