|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.ocl.AbstractEvaluationEnvironment<EClassifier,EOperation,EStructuralFeature,EClass,EObject>
org.eclipse.ocl.ecore.EcoreEvaluationEnvironment
public class EcoreEvaluationEnvironment
Implementation of the EvaluationEnvironment
for evaluation of OCL
expressions on instances of Ecore models (i.e., on M0 models).
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface org.eclipse.ocl.EvaluationEnvironment |
---|
EvaluationEnvironment.Enumerations<EL> |
Constructor Summary | |
---|---|
EcoreEvaluationEnvironment()
Initializes me. |
|
EcoreEvaluationEnvironment(EvaluationEnvironment<EClassifier,EOperation,EStructuralFeature,EClass,EObject> parent)
Initializes me with my parent evaluation environment (nesting scope). |
Method Summary | |
---|---|
java.lang.Object |
callOperation(EOperation operation,
int opcode,
java.lang.Object source,
java.lang.Object[] args)
Implements the inherited method by attempting to find an appropriate Java method in the actual type of the source object and invoking it. |
java.util.Map<EClass,java.util.Set<EObject>> |
createExtentMap(java.lang.Object object)
Creates an extent map for invocation of OclType.allInstances() using the specified object as a context from which to find
the scope in which OCL classifier extents are defined. |
Tuple<EOperation,EStructuralFeature> |
createTuple(EClassifier type,
java.util.Map<EStructuralFeature,java.lang.Object> values)
Creates a new tuple instance. |
protected java.lang.Object |
getInvalidResult()
Obtains the language-binding-specific representation of the predefined OclInvalid object. |
protected java.lang.reflect.Method |
getJavaMethodFor(EOperation operation,
java.lang.Object receiver)
Returns the java method that corresponds to the supplied EOperation |
EClassifier |
getType(java.lang.Object object)
Queries the type of the specified object. |
Enumerator |
getValue(EEnumLiteral enumerationLiteral)
Ecore implementation of the enumeration literal value. |
boolean |
isKindOf(java.lang.Object object,
EClassifier classifier)
Queries whether an object is an instance of the specified classifier or some specialization thereof. |
boolean |
isTypeOf(java.lang.Object object,
EClassifier classifier)
Queries whether an object's type is the specified classifier. |
java.lang.Object |
navigateAssociationClass(EClassifier associationClass,
EStructuralFeature navigationSource,
java.lang.Object target)
Obtains the instance of the specified association class that links the specified source element, optionally via the specified property. |
java.lang.Object |
navigateProperty(EStructuralFeature property,
java.util.List<?> qualifiers,
java.lang.Object target)
Obtains the value of the specified operation, for the given source element, according to the particular metamodel semantics. |
Methods inherited from class org.eclipse.ocl.AbstractEvaluationEnvironment |
---|
add, basicGetOptions, clear, clearOptions, getAdapter, getOptions, getParent, getValueOf, isEnabled, overrides, putOptions, remove, removeOption, removeOptions, replace, setOption, toString |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public EcoreEvaluationEnvironment()
public EcoreEvaluationEnvironment(EvaluationEnvironment<EClassifier,EOperation,EStructuralFeature,EClass,EObject> parent)
parent
- my parent (nesting scope); must not be null
Method Detail |
---|
public java.lang.Object callOperation(EOperation operation, int opcode, java.lang.Object source, java.lang.Object[] args) throws java.lang.IllegalArgumentException
AbstractEvaluationEnvironment
callOperation
in interface EvaluationEnvironment<EClassifier,EOperation,EStructuralFeature,EClass,EObject>
callOperation
in class AbstractEvaluationEnvironment<EClassifier,EOperation,EStructuralFeature,EClass,EObject>
operation
- the operation to invokeopcode
- the operation code, if this is an OCL Standard Library
operation (which this environment overrides)source
- the source element on which the operation is invokedargs
- the arguments, or an empty array if none
java.lang.IllegalArgumentException
- if the operation is not supported
by this environmentprotected java.lang.reflect.Method getJavaMethodFor(EOperation operation, java.lang.Object receiver)
AbstractEvaluationEnvironment
EOperation
getJavaMethodFor
in class AbstractEvaluationEnvironment<EClassifier,EOperation,EStructuralFeature,EClass,EObject>
operation
- the operation
protected java.lang.Object getInvalidResult()
AbstractEvaluationEnvironment
getInvalidResult
in class AbstractEvaluationEnvironment<EClassifier,EOperation,EStructuralFeature,EClass,EObject>
public java.lang.Object navigateProperty(EStructuralFeature property, java.util.List<?> qualifiers, java.lang.Object target) throws java.lang.IllegalArgumentException
EvaluationEnvironment
navigateProperty
in interface EvaluationEnvironment<EClassifier,EOperation,EStructuralFeature,EClass,EObject>
property
- the property to navigatequalifiers
- the association-end qualifier values, or an empty list
if nonetarget
- the source element owning the property value
java.lang.IllegalArgumentException
- if the property is not supported by the
element or by this environmentpublic java.lang.Object navigateAssociationClass(EClassifier associationClass, EStructuralFeature navigationSource, java.lang.Object target) throws java.lang.IllegalArgumentException
EvaluationEnvironment
navigateAssociationClass
in interface EvaluationEnvironment<EClassifier,EOperation,EStructuralFeature,EClass,EObject>
associationClass
- the association class to navigate tonavigationSource
- in case of ambiguity, the property of the
source element's classifier through which to navigate to the
association classtarget
- the source element from which to navigate
java.lang.IllegalArgumentException
- if the association class is not
associated with the source element, or is not supported by this
environmentpublic Tuple<EOperation,EStructuralFeature> createTuple(EClassifier type, java.util.Map<EStructuralFeature,java.lang.Object> values)
EvaluationEnvironment
createTuple
in interface EvaluationEnvironment<EClassifier,EOperation,EStructuralFeature,EClass,EObject>
type
- the type (a TupleType
) of the tuple to be createdvalues
- a mapping of the tuple parts
public java.util.Map<EClass,java.util.Set<EObject>> createExtentMap(java.lang.Object object)
EvaluationEnvironment
object
as a context from which to find
the scope in which OCL classifier extents are defined. This scope may
be a resource, resource set, or some metamodel-specific scope. Note that
in the case that the object
is not an
org.eclipse.emf.ecore.EObject
but is, instead, some primitive
type, then this may be difficult to determine.
Clients are encouraged to do what they can to optimize this mapping, by
lazy initialization of key-value pairs, workspace indices, or whatever
means is available. Note that the map will only ever be accessed by
key (Map.get(java.lang.Object)
); it will never be queried for
all entries, all keys, all values, etc. This knowledge could help
optimization.
createExtentMap
in interface EvaluationEnvironment<EClassifier,EOperation,EStructuralFeature,EClass,EObject>
object
- a context object in the scope that covers the OCL
classifier extents
public boolean isKindOf(java.lang.Object object, EClassifier classifier)
EvaluationEnvironment
isKindOf
in interface EvaluationEnvironment<EClassifier,EOperation,EStructuralFeature,EClass,EObject>
object
- an objectclassifier
- a classifier
true
if the specified classifier is the object's
type or some supertype thereof; false
, otherwisepublic boolean isTypeOf(java.lang.Object object, EClassifier classifier)
EvaluationEnvironment
isTypeOf
in interface EvaluationEnvironment<EClassifier,EOperation,EStructuralFeature,EClass,EObject>
object
- an objectclassifier
- a classifier
true
if ths specified classifier is the object's
type; false
, otherwisepublic EClassifier getType(java.lang.Object object)
EvaluationEnvironment
getType
in interface EvaluationEnvironment<EClassifier,EOperation,EStructuralFeature,EClass,EObject>
object
- an object
public Enumerator getValue(EEnumLiteral enumerationLiteral)
getValue
in interface EvaluationEnvironment.Enumerations<EEnumLiteral>
getValue
in interface Customizable
getValue
in class AbstractEvaluationEnvironment<EClassifier,EOperation,EStructuralFeature,EClass,EObject>
enumerationLiteral
- the option to query
|
Copyright 2002, 2007 IBM Corporation and others. All Rights Reserved. |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |