public class EcoreEnvironment extends 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> implements EnvironmentWithHiddenOpposites
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.AbstractEnvironment.VariableEntry
Environment.Internal<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>, Environment.Lookup<PK,C,O,P>, Environment.Registry
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
OCL_STANDARD_LIBRARY_NS_URI
The namespace URI of the Ecore representation of the OCL Standard Library.
|
OCL_NAMESPACE_URI, RESULT_VARIABLE_NAME, SELF_VARIABLE_NAME
Modifier | Constructor and Description |
---|---|
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.
|
protected |
EcoreEnvironment(org.eclipse.emf.ecore.EPackage.Registry reg,
org.eclipse.emf.ecore.resource.Resource resource)
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
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 OppositeEndFinder.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<java.lang.String>, java.util.List<org.eclipse.emf.ecore.EObject>) 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
lookupOppositeProperty(EClassifier, 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.
|
addedVariable, addElement, addHelperOperation, addHelperProperty, addOperation, addProperty, createTypeChecker, deleteElement, dispose, findUnnamedAssociationEnds, getAdapter, getAdditionalAttributes, getAdditionalOperations, getBodyCondition, getContextClassifier, getContextOperation, getContextPackage, getContextProperty, getDeriveConstraint, getElement, getElementsSize, getInitConstraint, getInternalParent, getParent, getResource, getSelfVariable, getTypeChecker, getVariables, initialLower, isEmpty, lookup, lookupAssociationClassReference, lookupImplicitSourceForAssociationClass, lookupImplicitSourceForOperation, lookupImplicitSourceForProperty, lookupImplicitSourceForSignal, lookupImplicitSourceForState, lookupLocal, lookupNonNavigableEnd, lookupOperation, lookupProperty, lookupSignal, lookupState, notOK, removedVariable, resetTypeCaches, setBodyCondition, setContextOperation, setContextPackage, setContextProperty, setDeriveConstraint, setInitConstraint, setInternalParent, setParent, setSelfVariable, tryLookupAssociationClassReference, tryLookupClassifier, tryLookupOperation, tryLookupPackage, tryLookupSignal
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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addElement, deleteElement, getAdditionalAttributes, getAdditionalOperations, getBodyCondition, getContextClassifier, getContextOperation, getContextPackage, getContextProperty, getDeriveConstraint, getInitConstraint, getParent, getSelfVariable, getVariables, isEmpty, lookup, lookupAssociationClassReference, lookupImplicitSourceForAssociationClass, lookupImplicitSourceForOperation, lookupImplicitSourceForProperty, lookupImplicitSourceForSignal, lookupImplicitSourceForState, lookupLocal, lookupOperation, lookupProperty, lookupSignal, lookupState, setBodyCondition, setDeriveConstraint, setInitConstraint, setSelfVariable
analyzerError, analyzerError, analyzerError, analyzerWarning, getASTMapping, getFormatter, getParser, getProblemHandler, initASTMapping, lexerError, parserError, problem, setParser, setProblemHandler, utilityError, validatorError
clearOptions, getOptions, getValue, isEnabled, putOptions, removeOption, removeOptions, setOption
public static final java.lang.String OCL_STANDARD_LIBRARY_NS_URI
@Deprecated protected EcoreEnvironment(org.eclipse.emf.ecore.EPackage.Registry reg)
EcoreEnvironment(EcoreEnvironmentFactory, Resource)
insteadreg
- a package registryprotected EcoreEnvironment(EcoreEnvironmentFactory fac, org.eclipse.emf.ecore.resource.Resource resource)
fac
- 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)
insteadreg
- 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 environmentpublic 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 insteadEcoreEnvironmentFactory
, 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 persistencepublic 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 namenull
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 namenull
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.lang.String>, java.util.List<org.eclipse.emf.ecore.EObject>)
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<java.lang.String>, java.util.List<org.eclipse.emf.ecore.EObject>)
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 namesprotected 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 constraintpublic 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 constraintpublic 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 operationnull
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 namenull
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 innull
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 expressiontrue
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 namenull
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 upnull
if it cannot
be foundLookupException
- 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
lookupOppositeProperty(EClassifier, 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 namenull
if it could not be foundLookupException
- 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 OppositeEndFinder.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()