|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.ocl.lpg.AbstractBasicEnvironment
org.eclipse.ocl.AbstractEnvironment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
org.eclipse.ocl.ecore.EcoreEnvironment
public class EcoreEnvironment
Implementation of the Environment
for parsing OCL expressions on
Ecore models. The EcoreEnvironment
uses a client-supplied
package registry (or the global registry) to look up EPackage
s
by qualified name.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.eclipse.ocl.AbstractEnvironment |
---|
AbstractEnvironment.VariableEntry |
Nested classes/interfaces inherited from interface org.eclipse.ocl.Environment |
---|
Environment.Internal<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>, Environment.Lookup<PK,C,O,P>, Environment.Registry |
Field Summary | |
---|---|
static java.lang.String |
OCL_STANDARD_LIBRARY_NS_URI
The namespace URI of the Ecore representation of the OCL Standard Library. |
Fields inherited from interface org.eclipse.ocl.Environment |
---|
OCL_NAMESPACE_URI, RESULT_VARIABLE_NAME, SELF_VARIABLE_NAME |
Constructor Summary | |
---|---|
protected |
EcoreEnvironment(EcoreEnvironmentFactory fac,
org.eclipse.emf.ecore.resource.Resource resource)
Initializes me with an environment factory from which package registry and opposite end finder (if any) are obtained consistently, and from a resource in which I am persisted (and from which I load myself if it already has content). |
protected |
EcoreEnvironment(Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject> parent)
Initializes me with a parent environment, from which I inherit such things as a package registry and a resource. |
protected |
EcoreEnvironment(org.eclipse.emf.ecore.EPackage.Registry reg)
Deprecated. Use #EcoreEnvironment(EcoreEnvironmentFactory, null) instead |
protected |
EcoreEnvironment(org.eclipse.emf.ecore.EPackage.Registry reg,
org.eclipse.emf.ecore.resource.Resource resource)
Deprecated. Use EcoreEnvironment(EcoreEnvironmentFactory, Resource) instead |
Method Summary | |
---|---|
protected void |
collectStates(org.eclipse.emf.ecore.EClassifier owner,
java.util.List<java.lang.String> pathPrefix,
java.util.List<org.eclipse.emf.ecore.EObject> states)
Implemented by subclasses to find all states in the specified owner type that match the given path name prefix and add them to the accumulator list. |
protected TypeResolver<org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature> |
createTypeResolver()
Deprecated. Override the createTypeResolver(Resource) method,
instead, handling the case where the resource is null |
protected TypeResolver<org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature> |
createTypeResolver(org.eclipse.emf.ecore.resource.Resource resource)
Creates a new type resolver for use with this environment. |
org.eclipse.emf.ecore.EStructuralFeature |
defineAttribute(org.eclipse.emf.ecore.EClassifier owner,
Variable<org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EParameter> variable,
Constraint constraint)
In processing an additional attribute definition, constructs the property and associates it with its definition constraint. |
org.eclipse.emf.ecore.EOperation |
defineOperation(org.eclipse.emf.ecore.EClassifier owner,
java.lang.String name,
org.eclipse.emf.ecore.EClassifier type,
java.util.List<Variable<org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EParameter>> params,
Constraint constraint)
In processing an additional operation definition, constructs the operation and associates it with its definition constraint. |
protected void |
findNonNavigableAssociationEnds(org.eclipse.emf.ecore.EClassifier classifier,
java.lang.String name,
java.util.List<org.eclipse.emf.ecore.EStructuralFeature> ends)
If a "hidden" opposite is found (because a forward reference has a "Property.oppositeRoleName" annotation specifying a name for the opposite role), this method adds a temporary EReference to the ends list which has no container set and as its
opposite uses the forward reference. |
protected void |
findOppositeEnds(org.eclipse.emf.ecore.EClassifier classifier,
java.lang.String name,
java.util.List<org.eclipse.emf.ecore.EReference> ends)
Searches for non-navigable association ends with the specified name at the given classifier's end of an association. |
static org.eclipse.emf.ecore.EPackage |
findPackage(java.util.List<java.lang.String> packageNames)
Looks in the EMF registry for a package with the specified qualified package name. |
static org.eclipse.emf.ecore.EPackage |
findPackage(java.util.List<java.lang.String> packageNames,
org.eclipse.emf.ecore.EPackage.Registry registry)
Looks in the given registry for a package with the specified qualified package name. |
Constraint |
getDefinition(java.lang.Object feature)
Obtains the definition constraint of the specified feature, if it is an additional attribute or operation defined via an OCL constraint. |
EnvironmentFactory<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject> |
getFactory()
Obtains the factory that created me, or an appropriate default factory if I was not created using a factory. |
java.util.Map<java.lang.String,org.eclipse.emf.ecore.EReference> |
getHiddenOppositeProperties(org.eclipse.emf.ecore.EClassifier classifier)
Finds all EReference s whose type
is classifier or any of classifier 's super
types and that own an annotation with source
EMOFExtendedMetaData.EMOF_PACKAGE_NS_URI_2_0 containing a detail
entry with key EcoreEnvironment#PROPERTY_OPPOSITE_ROLE_NAME_KEY . |
OCLFactory |
getOCLFactory()
Obtains a factory for the creation of types that are parameterized by model elements. |
OCLStandardLibrary<org.eclipse.emf.ecore.EClassifier> |
getOCLStandardLibrary()
Obtains the collection of core types representing the OCL Standard Library. |
OppositeEndFinder |
getOppositeEndFinder()
|
org.eclipse.emf.ecore.EClassifier |
getOppositePropertyType(org.eclipse.emf.ecore.EClassifier owner,
org.eclipse.emf.ecore.EReference property)
Determines a property's (hidden) opposite's type, assuming that there is not real opposite but that the opposite's type implicitly defaults to the property's owning class. |
java.util.List<org.eclipse.emf.ecore.EObject> |
getStates(org.eclipse.emf.ecore.EClassifier owner,
java.util.List<java.lang.String> pathPrefix)
Obtains the states matching the specified path prefix in the owner type by trying the collectStates(org.eclipse.emf.ecore.EClassifier, java.util.List method on it and, recursively, its
supertypes to find all matches. |
TypeResolver<org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature> |
getTypeResolver()
Obtains a type resolver to be used to create (and cache) concrete bindings for the generic OCL types, based on the user model types provided by this environment. |
UMLReflection<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint> |
getUMLReflection()
Obtains a utility for for reflection on the UML metaclasses that are used by the OCL abstract syntax. |
boolean |
isInPostcondition(OCLExpression<org.eclipse.emf.ecore.EClassifier> exp)
Checks whether the specified OCL expression is in an operation postcondition constraint. |
org.eclipse.emf.ecore.EClassifier |
lookupClassifier(java.util.List<java.lang.String> names)
Finds the classifier identified by the specified sequence of names (a qualified name). |
Variable<org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EParameter> |
lookupImplicitSourceForOppositeProperty(java.lang.String name)
Return the most appropriate matching variable to use as the implicit source of a call to the specified property. |
org.eclipse.emf.ecore.EReference |
lookupOppositeProperty(org.eclipse.emf.ecore.EClassifier owner,
java.lang.String name)
Looks up a non-navigable association end on behalf of the specified owner classifier (which is at that end). |
org.eclipse.emf.ecore.EPackage |
lookupPackage(java.util.List<java.lang.String> path)
Finds the package identified by the specified sequence of names (a qualified name). |
protected void |
setFactory(EnvironmentFactory<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject> factory)
Deprecated. factory will become final in future releases; use
one of the constructors taking an
EcoreEnvironmentFactory argument instead |
void |
setParent(Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject> env)
Sets my parent environment. |
org.eclipse.emf.ecore.EReference |
tryLookupOppositeProperty(org.eclipse.emf.ecore.EClassifier owner,
java.lang.String name)
This default implementation simply delegates to the Environment#lookupOppositeProperty(Object, String) method. |
org.eclipse.emf.ecore.EStructuralFeature |
tryLookupProperty(org.eclipse.emf.ecore.EClassifier owner,
java.lang.String name)
This default implementation simply delegates to the Environment.lookupProperty(Object, String) method. |
void |
undefine(java.lang.Object feature)
Removes the definition of an additional operation or property. |
Methods inherited from class org.eclipse.ocl.lpg.AbstractBasicEnvironment |
---|
analyzerError, analyzerError, analyzerError, analyzerWarning, basicGetOptions, clearOptions, createDefaultProblemHandler, createFormattingHelper, getASTMapping, getASTNodeToCSTNodeMap, getFormatter, getOptions, getParser, getProblemHandler, getValue, initASTMapping, initASTMapping, isEnabled, lexerError, parserError, problem, putOptions, removeOption, removeOptions, setASTNodeToCSTNodeMap, setOption, setParent, setParser, setProblemHandler, utilityError, validatorError |
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.lpg.BasicEnvironment |
---|
analyzerError, analyzerError, analyzerError, analyzerWarning, getASTMapping, getFormatter, getParser, getProblemHandler, initASTMapping, lexerError, parserError, problem, setParser, setProblemHandler, utilityError, validatorError |
Methods inherited from interface org.eclipse.ocl.options.Customizable |
---|
clearOptions, getOptions, getValue, isEnabled, putOptions, removeOption, removeOptions, setOption |
Field Detail |
---|
public static final java.lang.String OCL_STANDARD_LIBRARY_NS_URI
Constructor Detail |
---|
@Deprecated protected EcoreEnvironment(org.eclipse.emf.ecore.EPackage.Registry reg)
#EcoreEnvironment(EcoreEnvironmentFactory, null)
instead
reg
- a package registryprotected EcoreEnvironment(EcoreEnvironmentFactory fac, org.eclipse.emf.ecore.resource.Resource resource)
reg
- a package registryresource
- a resource, which may or may not already have content@Deprecated protected EcoreEnvironment(org.eclipse.emf.ecore.EPackage.Registry reg, org.eclipse.emf.ecore.resource.Resource resource)
EcoreEnvironment(EcoreEnvironmentFactory, Resource)
instead
reg
- a package registryresource
- a resource, which may or may not already have contentprotected EcoreEnvironment(Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject> parent)
parent
- my parent environmentMethod Detail |
---|
public EnvironmentFactory<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject> getFactory()
Environment
getFactory
in interface Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
EnvironmentFactory.createEnvironment(Environment)
@Deprecated protected void setFactory(EnvironmentFactory<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject> factory)
factory
will become final in future releases; use
one of the constructors taking an
EcoreEnvironmentFactory
argument instead
EcoreEnvironmentFactory
, its
opposite end
finder
will be used as this environment's opposite end finder
.
factory
- my originating factorypublic void setParent(Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject> env)
Environment
null
if it was not already null
.
setParent
in interface Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
env
- my new parent environmentpublic OCLStandardLibrary<org.eclipse.emf.ecore.EClassifier> getOCLStandardLibrary()
Environment
EnvironmentFactory
.
getOCLStandardLibrary
in interface Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
public TypeResolver<org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature> getTypeResolver()
Environment
getTypeResolver
in interface Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
public OCLFactory getOCLFactory()
Environment
getOCLFactory
in interface Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
public UMLReflection<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint> getUMLReflection()
Environment
getUMLReflection
in interface Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
@Deprecated protected TypeResolver<org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature> createTypeResolver()
createTypeResolver(Resource)
method,
instead, handling the case where the resource is null
protected TypeResolver<org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature> createTypeResolver(org.eclipse.emf.ecore.resource.Resource resource)
Creates a new type resolver for use with this environment.
Subclasses may override.
resource
- the resource for the type resolver's persistence
public org.eclipse.emf.ecore.EPackage lookupPackage(java.util.List<java.lang.String> path)
Implements the inherited specification by looking up the qualified name in my package registry.
lookupPackage
in interface Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
path
- the qualified name
null
if not foundpublic org.eclipse.emf.ecore.EClassifier lookupClassifier(java.util.List<java.lang.String> names)
Environment
lookupClassifier
in interface Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
names
- the qualified name
null
if not foundpublic java.util.List<org.eclipse.emf.ecore.EObject> getStates(org.eclipse.emf.ecore.EClassifier owner, java.util.List<java.lang.String> pathPrefix)
collectStates(org.eclipse.emf.ecore.EClassifier, java.util.List, java.util.List)
method on it and, recursively, its
supertypes to find all matches. For implicit (null
) owners,
looks up the innermost-scoped variable as the implicit source and tries
again on this variable's type.
To extend this implementation, override the
collectStates(org.eclipse.emf.ecore.EClassifier, java.util.List
method.
getStates
in interface Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
owner
- the classifier for which states are being sought. Can be
null
in the case of an oclIsInState() call on an
implicit targetpathPrefix
- partial path name of the states being sought. This
can be empty to find the first level of state names
protected void collectStates(org.eclipse.emf.ecore.EClassifier owner, java.util.List<java.lang.String> pathPrefix, java.util.List<org.eclipse.emf.ecore.EObject> states)
Implementors must only provide the states defined directly in the namespace indicated by the path prefix (i.e., only one level).
owner
- the owner typepathPrefix
- partial qualified name, specifying the parent of the
states to be collectionstates
- a list of states directly owned by the namespace indicated
by path prefix, within the owner typegetStates(EClassifier, List)
public org.eclipse.emf.ecore.EStructuralFeature defineAttribute(org.eclipse.emf.ecore.EClassifier owner, Variable<org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EParameter> variable, Constraint constraint)
Environment
defineAttribute
in interface Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
owner
- the context classifier of the property definition constraintvariable
- the name and type of the property (conveniently
encapsulated in a variable)constraint
- the definition constraint
public org.eclipse.emf.ecore.EOperation defineOperation(org.eclipse.emf.ecore.EClassifier owner, java.lang.String name, org.eclipse.emf.ecore.EClassifier type, java.util.List<Variable<org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EParameter>> params, Constraint constraint)
Environment
defineOperation
in interface Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
owner
- the context classifier of the property definition constraintname
- the operation nameparams
- the names and types of the parameters, if any (conveniently
encapsulated in variables)constraint
- the definition constraint
public void undefine(java.lang.Object feature)
Environment
undefine
in interface Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
feature
- an additional property or operationpublic Constraint getDefinition(java.lang.Object feature)
Environment
getDefinition
in interface Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
feature
- a property or operation
null
if this feature is not defined by OCLpublic static org.eclipse.emf.ecore.EPackage findPackage(java.util.List<java.lang.String> packageNames)
packageNames
- the qualified package name
null
if not foundpublic static org.eclipse.emf.ecore.EPackage findPackage(java.util.List<java.lang.String> packageNames, org.eclipse.emf.ecore.EPackage.Registry registry)
packageNames
- the qualified package nameregistry
- the EPackage.Registry to look in
null
if not foundpublic boolean isInPostcondition(OCLExpression<org.eclipse.emf.ecore.EClassifier> exp)
Environment
isInPostcondition
in interface Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
exp
- an OCL expression
true
if it is in a postcondition constraint;
false
, otherwise (including case of no constraint at all)public Variable<org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EParameter> lookupImplicitSourceForOppositeProperty(java.lang.String name)
EnvironmentWithHiddenOpposites
lookupImplicitSourceForOppositeProperty
in interface EnvironmentWithHiddenOpposites
name
- the property name
null
if no appropriate
variable can be found whose type defines a property of this namepublic org.eclipse.emf.ecore.EReference lookupOppositeProperty(org.eclipse.emf.ecore.EClassifier owner, java.lang.String name) throws LookupException
owner
classifier (which is at that end).
lookupOppositeProperty
in interface EnvironmentWithHiddenOpposites
owner
- a classifier in the context of which the property is usedname
- the end name to look up
null
if it cannot
be found
LookupException
- in case that multiple non-navigable properties
are found that have the same name and the problem option is ERROR
or worsepublic org.eclipse.emf.ecore.EReference tryLookupOppositeProperty(org.eclipse.emf.ecore.EClassifier owner, java.lang.String name) throws LookupException
Environment#lookupOppositeProperty(Object, String)
method.
LookupException
public org.eclipse.emf.ecore.EStructuralFeature tryLookupProperty(org.eclipse.emf.ecore.EClassifier owner, java.lang.String name) throws LookupException
Environment.lookupProperty(Object, String)
method.
tryLookupProperty
in interface Environment.Lookup<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature>
tryLookupProperty
in class AbstractEnvironment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
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 found
LookupException
- if lookup fails due to an error such as an ambiguityprotected void findOppositeEnds(org.eclipse.emf.ecore.EClassifier classifier, java.lang.String name, java.util.List<org.eclipse.emf.ecore.EReference> ends)
classifier
- a classifier at an association endname
- the non-navigable end name to look forends
- collects the ends found by the subclass implementationprotected void findNonNavigableAssociationEnds(org.eclipse.emf.ecore.EClassifier classifier, java.lang.String name, java.util.List<org.eclipse.emf.ecore.EStructuralFeature> ends)
EReference
to the ends
list which has no container set and as its
opposite uses the forward reference. The name of this temporary reference is set to
name
which equals the value of the "Property.oppositeRoleName" annotation
on the forward reference.The temporary reference is not a valid reference for at least two reasons: its container is not set and its opposite does not name it as its opposite.
findNonNavigableAssociationEnds
in class AbstractEnvironment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
classifier
- a classifier at an association endname
- the non-navigable end name to look forends
- collects the ends found by the subclass implementationpublic org.eclipse.emf.ecore.EClassifier getOppositePropertyType(org.eclipse.emf.ecore.EClassifier owner, org.eclipse.emf.ecore.EReference property)
EnvironmentWithHiddenOpposites
getOppositePropertyType
in interface EnvironmentWithHiddenOpposites
public java.util.Map<java.lang.String,org.eclipse.emf.ecore.EReference> getHiddenOppositeProperties(org.eclipse.emf.ecore.EClassifier classifier)
EnvironmentWithHiddenOpposites
EReference
s whose type
is classifier
or any of classifier
's super
types and that own an annotation
with source
EMOFExtendedMetaData.EMOF_PACKAGE_NS_URI_2_0
containing a detail
entry with key EcoreEnvironment#PROPERTY_OPPOSITE_ROLE_NAME_KEY
.
The value of the annotation detail is entered into the resulting map as a
key, the EReference
on which the annotation was found is entered
into the result map as the corresponding value.
getHiddenOppositeProperties
in interface EnvironmentWithHiddenOpposites
null
map of all "hidden references" accessible from
classifier
together with their corresponding forward
referencespublic OppositeEndFinder getOppositeEndFinder()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |