public abstract class AbstractEvaluationEnvironment<C,O,P,CLS,E> extends java.lang.Object implements EvaluationEnvironment<C,O,P,CLS,E>, Adaptable, Customizable
EvaluationEnvironment
interface,
providing some useful common behaviors. Implementors of metamodel-specific
environments are encourage to extend this class rather than implement
an evaluation environment "from scratch."
See the Environment
class for a description of the
generic type parameters of this class.
Since the 1.2 release, this interface is Adaptable
to support the
optional adapter protocols such as EvaluationEnvironment.Enumerations
and Customizable
.
Modifier and Type | Class and Description |
---|---|
protected static class |
AbstractEvaluationEnvironment.AbstractTuple<O,P>
UML implementation of a tuple value.
|
EvaluationEnvironment.Enumerations<EL>
Modifier | Constructor and Description |
---|---|
protected |
AbstractEvaluationEnvironment() |
protected |
AbstractEvaluationEnvironment(EvaluationEnvironment<C,O,P,CLS,E> parent) |
Modifier and Type | Method and Description |
---|---|
void |
add(java.lang.String name,
java.lang.Object value)
Adds the supplied name and value binding to the environment
|
protected java.util.Map<Option<?>,java.lang.Object> |
basicGetOptions() |
java.lang.Object |
callOperation(O 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.
|
void |
clear()
Clears the environment of variables.
|
java.util.Map<Option<?>,java.lang.Object> |
clearOptions()
Clears all options.
|
<T> T |
getAdapter(java.lang.Class<T> adapterType)
Implements the interface method by testing whether I am an instance of
the requested adapter type.
|
protected abstract java.lang.Object |
getInvalidResult()
Obtains the language-binding-specific representation of the predefined
OclInvalid object.
|
protected abstract java.lang.reflect.Method |
getJavaMethodFor(O operation,
java.lang.Object receiver)
Returns the java method that corresponds to the supplied
EOperation |
java.util.Map<Option<?>,java.lang.Object> |
getOptions()
Obtains a copy of my map of options.
|
protected EvaluationEnvironment<C,O,P,CLS,E> |
getParent()
Obtains my parent (nesting) environment.
|
<T> T |
getValue(Option<T> option)
Obtains the value of the specified option's setting in the my
options map.
|
java.lang.Object |
getValueOf(java.lang.String name)
Returns the value associated with the supplied name
|
boolean |
isEnabled(Option<java.lang.Boolean> option)
Queries whether the specified boolean-valued option is enabled.
|
boolean |
overrides(O operation,
int opcode)
By default, a subclass will not support overriding the operations defined
by the OCL Standard Library.
|
<T> void |
putOptions(java.util.Map<? extends Option<T>,? extends T> options)
Adds options to apply to my behaviour.
|
java.lang.Object |
remove(java.lang.String name)
Removes the supplied name and binding from the environment (if it exists)
and returns it.
|
<T> T |
removeOption(Option<T> option)
Removes the specified option.
|
<T> java.util.Map<Option<T>,T> |
removeOptions(java.util.Collection<Option<T>> options)
Removes the specified options.
|
void |
replace(java.lang.String name,
java.lang.Object value)
Replaces the current value of the supplied name with the supplied value.
|
<T> void |
setOption(Option<T> option,
T value)
Add an option to apply to my behaviour.
|
java.lang.String |
toString()
Returns a string representation of the bindings
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
createExtentMap, createTuple, getType, isKindOf, isTypeOf, navigateAssociationClass, navigateProperty
protected EvaluationEnvironment<C,O,P,CLS,E> getParent()
null
if nonepublic java.lang.Object getValueOf(java.lang.String name)
getValueOf
in interface EvaluationEnvironment<C,O,P,CLS,E>
name
- the name whose value is to be returnedpublic void replace(java.lang.String name, java.lang.Object value)
public void add(java.lang.String name, java.lang.Object value)
add
in interface EvaluationEnvironment<C,O,P,CLS,E>
name
- the name to addvalue
- the associated bindingEvaluationEnvironment.replace(String, Object)
public java.lang.Object remove(java.lang.String name)
public void clear()
public java.lang.String toString()
toString
in class java.lang.Object
public boolean overrides(O operation, int opcode)
false
.overrides
in interface EvaluationEnvironment<C,O,P,CLS,E>
operation
- an OCL operationopcode
- the operation code, if one of the operations pre-defined
by OCL. Otherwise, -1
true
if this evaluation environment provides an
implementation of this operation
; false
,
otherwiseEvaluationEnvironment.callOperation(O, int, java.lang.Object, java.lang.Object[])
public java.lang.Object callOperation(O operation, int opcode, java.lang.Object source, java.lang.Object[] args) throws java.lang.IllegalArgumentException
callOperation
in interface EvaluationEnvironment<C,O,P,CLS,E>
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 nonejava.lang.IllegalArgumentException
- if the operation is not supported
by this environmentprotected abstract java.lang.reflect.Method getJavaMethodFor(O operation, java.lang.Object receiver)
EOperation
operation
- the operationprotected abstract java.lang.Object getInvalidResult()
public <T> T getAdapter(java.lang.Class<T> adapterType)
getAdapter
in interface Adaptable
T
- the requested adapter interfaceadapterType
- the requested adapter interfacenull
if this environment does not adapt to itprotected java.util.Map<Option<?>,java.lang.Object> basicGetOptions()
public java.util.Map<Option<?>,java.lang.Object> getOptions()
Customizable
getOptions
in interface Customizable
public <T> void setOption(Option<T> option, T value)
Customizable
setOption
in interface Customizable
option
- the optionvalue
- the option's valuepublic <T> void putOptions(java.util.Map<? extends Option<T>,? extends T> options)
Customizable
putOptions
in interface Customizable
options
- the optionspublic <T> T removeOption(Option<T> option)
Customizable
removeOption
in interface Customizable
option
- the option to removepublic <T> java.util.Map<Option<T>,T> removeOptions(java.util.Collection<Option<T>> options)
Customizable
removeOptions
in interface Customizable
options
- the options to removepublic java.util.Map<Option<?>,java.lang.Object> clearOptions()
Customizable
clearOptions
in interface Customizable
public boolean isEnabled(Option<java.lang.Boolean> option)
Customizable
isEnabled
in interface Customizable
option
- an optionpublic <T> T getValue(Option<T> option)
Customizable
getValue
in interface Customizable
option
- the option to query