|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.eclipse.ocl.AbstractEnvironment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
public abstract class AbstractEnvironment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
A partial implementation of the Environment
interface providing
some useful common behavior for providers of metamodel bindings. It is
recommended to extend this class rather than to implement the
Environment
interface from scratch.
In particular, this class provides:
along with some subclass hook methods and convenience methods.
See the Environment
class for a description of the
generic type parameters of this class.
Nested Class Summary | |
---|---|
protected class |
AbstractEnvironment.VariableEntry
Wrapper for OCL variable declarations that additionally tracks whether they are explicit or implicit variables. |
Nested classes/interfaces inherited from interface org.eclipse.ocl.Environment |
---|
Environment.Registry |
Field Summary |
---|
Fields inherited from interface org.eclipse.ocl.Environment |
---|
OCL_NAMESPACE_URI, RESULT_VARIABLE_NAME, SELF_VARIABLE_NAME |
Constructor Summary | |
---|---|
protected |
AbstractEnvironment()
Initializes me without a parent environment. |
protected |
AbstractEnvironment(AbstractEnvironment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E> parent)
Initializes me with the specified parent environment, which should be of the same type as me. |
Method Summary | |
---|---|
protected void |
addedVariable(String name,
Variable<C,PM> variable,
boolean isExplicit)
Persists the specified variable in my resource. |
boolean |
addElement(String name,
Variable<C,PM> elem,
boolean isExplicit)
Adds a variable declaration to the environment. |
protected void |
addOperation(C owner,
O operation)
Allows subclasses to add a newly OCL-defined additional operation to the environment. |
protected void |
addProperty(C owner,
P property)
Allows subclasses to add a newly OCL-defined additional property to the environment. |
void |
deleteElement(String name)
Removes a variable when it goes out of scope. |
List<P> |
getAdditionalAttributes(C classifier)
Obtains the additional attributes defined in this environment in the context of the specified classifier. |
List<O> |
getAdditionalOperations(C classifier)
Obtains the additional operations defined in this environment in the context of the specified classifier. |
CT |
getBodyCondition(O operation)
Obtains an operation's body condition constraint. |
C |
getContextClassifier()
Obtains the context classifier of this environment. |
O |
getContextOperation()
Obtains the context operation of this environment, if it is an operation context. |
PK |
getContextPackage()
Obtains my context package, if any. |
P |
getContextProperty()
Obtains the context property of this environment, if it is a property context. |
CT |
getDeriveConstraint(P property)
Obtains a property's derived-value constraint. |
CT |
getInitConstraint(P property)
Obtains a property's with an initial-value constraint, if any. |
AbstractEnvironment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E> |
getParent()
Obtains my parent environment, if I have one. |
protected Resource |
getResource()
Obtains the resource in which my type resolver persists OCL-generated types and additional features. |
Variable<C,PM> |
getSelfVariable()
Gets the self variable, looking it up in a parent environment if necessary. |
Collection<Variable<C,PM>> |
getVariables()
Returns the Variable s registered explicitly in me and any
parents that I may have. |
protected String |
initialLower(Object element)
Gets the name of a named element with its initial character
in lower case. |
boolean |
isEmpty()
Queries whether the environment has any local variables defined in it. |
Variable<C,PM> |
lookup(String name)
Obtains the Variable bound to a variable name. |
C |
lookupAssociationClassReference(C owner,
String name)
Finds a reference in the specified class to the named association class. |
Variable<C,PM> |
lookupImplicitSourceForAssociationClass(String name)
Return an implicit variable that references the named association class. |
Variable<C,PM> |
lookupImplicitSourceForOperation(String name,
List<? extends TypedElement<C>> args)
Return an implicit variable declaration that defines the specified operation signature. |
Variable<C,PM> |
lookupImplicitSourceForProperty(String name)
Return the most appropriate matching variable to use as the implicit source of a call to the specified property. |
Variable<C,PM> |
lookupImplicitSourceForSignal(String name,
List<? extends TypedElement<C>> args)
Return an implicit variable declaration that defines the specified signal reception signature. |
Variable<C,PM> |
lookupImplicitSourceForState(List<String> path)
Finds the best-matching implicit variable to use as a source for the unqualified oclIsInState() invocation with the specified state qualified name path. |
Variable<C,PM> |
lookupLocal(String name)
Obtains the Variable bound to a local variable name. |
O |
lookupOperation(C owner,
String name,
List<? extends TypedElement<C>> args)
Find an operation in the specified class. |
P |
lookupProperty(C owner,
String name)
Finds a property defined or inherited by the specified classifier. |
C |
lookupSignal(C owner,
String name,
List<? extends TypedElement<C>> args)
Finds a received signal in the specified classifier. |
S |
lookupState(C owner,
List<String> path)
Finds the state identified by the specified qualified name path, to resolve an oclIsInState() operation. |
protected void |
removedVariable(String name,
Variable<C,PM> variable,
boolean isExplicit)
Removes the specified variable from my resource. |
void |
setBodyCondition(O operation,
CT constraint)
Associates an operation with an body condition constraint. |
protected void |
setContextOperation(O contextOperation)
Assigns my context operation. |
protected void |
setContextPackage(PK contextPackage)
Assigns my context package. |
protected void |
setContextProperty(P contextProperty)
Assigns my context property. |
void |
setDeriveConstraint(P property,
CT constraint)
Associates a property with an derived-value constraint. |
void |
setInitConstraint(P property,
CT constraint)
Associates a property with an initial-value constraint. |
protected void |
setParent(AbstractEnvironment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E> parent)
Assigns me a parent environment after construction. |
void |
setSelfVariable(Variable<C,PM> var)
Sets the "self" variable that is the implicit source of any property, operation, or association class call. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.eclipse.ocl.Environment |
---|
defineAttribute, defineOperation, getDefinition, getFactory, getOCLFactory, getOCLStandardLibrary, getStates, getTypeResolver, getUMLReflection, isInPostcondition, lookupClassifier, lookupPackage, setParent, undefine |
Constructor Detail |
---|
protected AbstractEnvironment()
protected AbstractEnvironment(AbstractEnvironment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E> parent)
parent
- an environment of the same type as me (or null
)Method Detail |
---|
public AbstractEnvironment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E> getParent()
Environment
getParent
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
null
if I am a root environmentprotected void setParent(AbstractEnvironment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E> parent)
null
if I previously had one.
parent
- my new parentpublic PK getContextPackage()
Environment
getContextPackage
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
Environment.getContextClassifier()
protected void setContextPackage(PK contextPackage)
contextPackage
- my new context packagepublic C getContextClassifier()
Environment
getContextClassifier
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
public O getContextOperation()
Environment
getContextOperation
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
null
if this is not an
operation environmentprotected void setContextOperation(O contextOperation)
contextOperation
- my context operationpublic P getContextProperty()
Environment
getContextProperty
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
null
if this is not a
property environmentprotected void setContextProperty(P contextProperty)
contextProperty
- my context propertyprotected Resource getResource()
public boolean isEmpty()
Environment
isEmpty
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
true
if no local variables are defined;
false
, otherwisepublic Collection<Variable<C,PM>> getVariables()
Environment
Variable
s registered explicitly in me and any
parents that I may have. This does not include implicit variables or
variables from parent environments that are shadowed by variables in
the nested scope.
getVariables
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
public boolean addElement(String name, Variable<C,PM> elem, boolean isExplicit)
Environment
addElement
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
name
- the name of the variable, or null
elem
- a variable declarationisExplicit
- whether this is an explicitly declared variable
true
if the variable was successfully added because
it wasn't already declared locally in this environment;
false
, otherwiseprotected void addedVariable(String name, Variable<C,PM> variable, boolean isExplicit)
name
- the variable namevariable
- the variable addedisExplicit
- whether it is an explicit or implicit variablepublic void deleteElement(String name)
Environment
deleteElement
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
name
- the name of the variable to deleteprotected void removedVariable(String name, Variable<C,PM> variable, boolean isExplicit)
name
- the variable namevariable
- the variable removedisExplicit
- whether it was an explicit or implicit variablepublic void setSelfVariable(Variable<C,PM> var)
Environment
setSelfVariable
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
var
- the "self" variablepublic Variable<C,PM> getSelfVariable()
Environment
getSelfVariable
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
null
if none (which should
only be the case in a root environment having only a package context,
if even that)protected void addProperty(C owner, P property)
Environment.defineAttribute(C, org.eclipse.ocl.expressions.Variable, CT)
method.
owner
- the classifier in which context the attribute is definedproperty
- the additional attributepublic List<P> getAdditionalAttributes(C classifier)
Environment
getAdditionalAttributes
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
classifier
- a classifier
protected void addOperation(C owner, O operation)
Environment.defineOperation(C, java.lang.String, C, java.util.List>, CT)
method.
owner
- the classifier in which context the attribute is definedoperation
- the additional operationpublic List<O> getAdditionalOperations(C classifier)
Environment
getAdditionalOperations
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
classifier
- a classifier
public void setInitConstraint(P property, CT constraint)
Environment
setInitConstraint
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
property
- an attributeconstraint
- its initial-value constraintpublic CT getInitConstraint(P property)
Environment
getInitConstraint
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
property
- an attribute
null
if nonepublic void setDeriveConstraint(P property, CT constraint)
Environment
setDeriveConstraint
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
property
- an attributeconstraint
- its derived-value constraintpublic CT getDeriveConstraint(P property)
Environment
getDeriveConstraint
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
property
- an attribute
public void setBodyCondition(O operation, CT constraint)
Environment
setBodyCondition
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
operation
- an operationconstraint
- its body condition constraintpublic CT getBodyCondition(O operation)
Environment
getBodyCondition
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
operation
- an operation
public Variable<C,PM> lookupLocal(String name)
Environment
lookupLocal
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
name
- a variable name to look up
null
if not found in
this particular environmentpublic Variable<C,PM> lookup(String name)
Environment
lookup
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
name
- a variable name to look up
null
if not found in
this particular environmentpublic O lookupOperation(C owner, String name, List<? extends TypedElement<C>> args)
Environment
lookupOperation
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
owner
- the owner type of the called operation, or null
to find an implicit owner type (in iteration expressions)name
- the name of the called operationargs
- the arguments (expressions or variables) to be matched against
the parameter signature of the operation
null
if not foundpublic P lookupProperty(C owner, String name)
Environment
lookupProperty
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
owner
- the owner of the property that we are looking for, or
null
to find an implicit owner type (in iteration
expressions)name
- the property name
null
if it could not be foundpublic C lookupAssociationClassReference(C owner, String name)
Environment
lookupAssociationClassReference
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
owner
- the referencing class to search, or
null
to find an implicit owner type (in iteration
expressions)name
- the association class name (with an initial lower case as
per the OCL convention)
null
if the specified owner
is not at the
end of an association with this particular namepublic C lookupSignal(C owner, String name, List<? extends TypedElement<C>> args)
Environment
lookupSignal
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
owner
- the owner type of the signal receptionname
- the name of the signalargs
- the arguments (expressions or variables) matching the
properties of the signal (parameters of the reception feature)
null
if not foundpublic S lookupState(C owner, List<String> path) throws SemanticException
Environment
lookupState
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
owner
- the type on which the oclIsInState() operation is
invokedpath
- the state name to seek
null
if not found
SemanticException
- in the case that this path is
ambiguous; i.e., that it does not qualify a state reference with
the state machine name to select between same-named states in
different state machinespublic Variable<C,PM> lookupImplicitSourceForOperation(String name, List<? extends TypedElement<C>> args)
Environment
lookupImplicitSourceForOperation
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
name
- the operation nameargs
- the list of arguments (expressions or variables) to match
against the operation parameters
null
if no appropriate
variable can be found whose type defines a property of this namepublic Variable<C,PM> lookupImplicitSourceForProperty(String name)
Environment
lookupImplicitSourceForProperty
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
name
- the property name
null
if no appropriate
variable can be found whose type defines a property of this namepublic Variable<C,PM> lookupImplicitSourceForAssociationClass(String name)
Environment
lookupImplicitSourceForAssociationClass
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
name
- the association class name to seek
null
if no appropriate
variable can be found whose type defines a property of this namepublic Variable<C,PM> lookupImplicitSourceForSignal(String name, List<? extends TypedElement<C>> args)
Environment
lookupImplicitSourceForSignal
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
name
- the signal nameargs
- the list of arguments (expressions or variables) to match
against the signal reception parameters
null
if no appropriate
variable can be found whose type defines a property of this namepublic Variable<C,PM> lookupImplicitSourceForState(List<String> path) throws SemanticException
Environment
lookupImplicitSourceForState
in interface Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
path
- the state name to seek
null
if not found
SemanticException
- in the case that this path is
ambiguous; i.e., that it does not qualify a state reference with
the state machine name to select between same-named states in
different state machinesprotected String initialLower(Object element)
element
with its initial character
in lower case.
element
- a named element
|
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 |